Javaでログファイルを解析する必要があります。ログファイルには、呼び出しトランザクションに関する情報が含まれています。興味のある行とその中の情報は、ログ行エントリの例で太字でマークされています。次のものについては、ステータスと電話番号を抽出する必要があります。
8月15日20:35:22GMT2012 tropo109.orl.voxeo.net TROPO 138595 0 e467547d3333724bdd52635bbb713e77 1 d607eb64fb3bfbfd273a55f4b121b903 SimpleOutgoingCall [+ 17877058826 / null- > + 17877260664 / null]:[転送
この回線から、電話番号と合計通話時間を取得する必要があります。
Aug 15 20:35:22 GMT 2012 tropo109.orl.voxeo.net TROPO 138595 0 e467547d3333724bdd52635bbb713e77 1 d607eb64fb3bfbfd273a55f4b121b903 Logging CDR {"call":{"SipSessionID": "ss_jzto5yd4j "d607eb64fb3bfbfd273a55f4b121b903"、 "ParentSessionID": "none"、 "ParentCallID": "none"、 "DateCreated": "Wed、15 Aug 2012 20:34:14 +0000"、 "DateUpdated": "Wed、15 Aug 2012 20 :34:14 +0000 "、" AccountID ":" 138595 "、" Called ":" +17877260664 "、" Caller ":" + 17877058826 "、" PhoneNumberSid ":" unknown "、" Disposition ":"スクリプトが終了しました " 、"状態":"成功"、" StartTime ":"水、2012年8月15日20:34:14 +0000 "、" EndTime ":"水、2012年8月15日20:35:22 +0000 "、"期間 ":" 67950"、" Flags ":" out "、" RecordingDuration ":" 0 "、" Network ":" SIP "、" Channel ":" VOICE "、" ApplicationId ":" 392671"、" ApplicationType ":" groovy "、 "ServiceId": "1291899"、 "StartUrl": "http://hosting.tropo.com/138595/www/outboud-web2ivr.groovy"、 "BrowserIP": "10.6.69.109"、 "PPID": "461 "}}
したがって、一般的にはファイルを解析する必要があり、さまざまなログ行内のエントリが呼び出しステータスと期間を取得します。ポインタはありますか?
更新:最初の部分を取得するためのコード、2番目の部分を取得する方法に関するポインターを取得し、ログエントリ行内で(phone、status)または(phone、callduration)を検出するコンパイル済みの式を1つだけ持っていますか?:
private static void matchParts( String aText ){
Pattern pattern = Pattern.compile("(?:\\[(\\w(\\w)*),(\\+\\d{11})\\])");
Matcher matcher = pattern.matcher(aText );
String phone;
String status;
while (matcher.find()) {
System.out.println("phone:" +matcher.group(3) + ", status: "+matcher.group(1) );
}
}