【ログファイル解析術】ログファイルからxmlを抽出する

こんにちは。ぐっさんです。
 
今回は、ログファイルの中に出力されている特定のxmlを抽出し、解析する方法をご紹介します。
 
ログファイルを1行目から検索し、xmlを文字列にする単純なものですが、障害対応などで便利ですので、参考になればと思います。
 
文字列にしたxmlをJAXBでUnmarchelしてオブジェクトにすると、バッチ処理でも活用できると思います。

サンプルプログラム

サンプルプログラムは下記の通りです。
 
StringBuilderに対象のタグの文字列を追加していきます。タグの終了を検知した時点で、初期化し次のタグを検索します。

public class LogConverter {

  public static void main(String[] args) {

    String filepath = "logs/application.log";

    // ファイルを読み込む
    try (BufferedReader reader = new BufferedReader(new FileReader(filepath))) {
      String str;
      StringBuilder sb = new StringBuilder();

      boolean startTagFlag = false;
      while ((str = reader.readLine()) != null) {

        // 開始タグを検知
        if (str.indexOf("<testTag") != -1) {
          startTagFlag = true;
        } else if (startTagFlag) {
          sb.append(str);
        }

        // 終了タグを検知
        if (str.indexOf("</testTag>") != -1) {
          startTagFlag = false;
          System.out.println(sb.toString());

          // ----------------
          // 必要な処理を記載
          // ----------------

          sb = new StringBuilder();
        }
      }
    } catch (Exception e) {
        e.printStackTrace();
    }
  }

}

 
単純な処理ではありますが、調査が必要な時や定期的なログ解析であると便利だと思います。
 
それでは、良い開発ライフを!

記事をシェア
MOST VIEWED ARTICLES