• ベストアンサー

log4jログ解析(性能)に最適な方法は?

こんにちは。 log4jによって出力されたログの解析を言い渡され、なにか楽な方法はないかと思案しております。 以前はgawkやらsedやらで頑張っていたのですが、短期間で効率よく解析したいので何か効率のいい方法がありましたら、教えてください。 漠然としていてすみまんせん。。。ログはうん10万ラインのオーダになりそうです。先輩にはPerlでツールを書くのがいいのではないかとアドバイスされましたが、短期間でPerlを習得してツールまで書くとなると、ちょっと間に合わなさそうです。 例えばlog4jの解析に特化したツールなどはありませんでしょうか?

  • Java
  • 回答数2
  • ありがとう数3

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

>漠然としていてすみまんせん。。。ログはうん10万ラインのオーダになりそうです。先輩にはPerlでツールを書くのがいいのではないかとアドバイスされましたが、短期間でPerlを習得してツールまで書くとなると、ちょっと間に合わなさそうです。 では、Groovyなぞを・・・。 Javaが理解されているのであればすぐに使えるスクリプト言語です。

foxa-gogo
質問者

お礼

ありがとうございました。ご紹介いただいたGroovyがベストかなという考えに傾いていたのですが、安全パイでいきたかったので、結局javaでゴリゴリツールを書くことにしました(^^;) 次からはGroovyで書けるようにしたいと思います。 ありがとうございました!

その他の回答 (1)

回答No.1

log4jの出力形式は自由に変更可能ですから、それに特化したツールとなるとむずかしいかもしれません。 自由度の高い解析ツールを探して、それ用にカスタマイズするとか。。。 それに、解析の方法もいろいろありますし。。。 こんなのとかはどうなんでしょうね~ http://www.okisoft.co.jp/esc/log4j/analysis/A1.html

foxa-gogo
質問者

お礼

ありがとうございました。chainsawも検討したのですが、統計処理などはできないようですね。。。

関連するQ&A

  • log4jの使用方法について

    現在、Javaで開発されたアプリケーションのシステム運用を行っています。 (OSはLinux、APサーバーはTomcatを使用) あるバグ解析のため、ログ出力(log4jを使用)を追加したところ Socket Exception:Too many open filesが発生しました。 原因はログ出力した際のファイルクローズ漏れでは?と指摘を受けました。 log4jのログ出力機能を使用した際にはクローズ処理は必要なのでしょうか? 以上、よろしくお願いします。

  • windows update.logの解析ツール

    こんにちは、お世話になります。 Windows Updateのログ「Windows Update.log」についてなのですが、 こちらを見やすく表示(解析)できるようなツール等はありませんでしょうか? 恐らくこういう意味かな?的な解釈で読むことは出来きるのですが、大変不便で困っております。 こちらのログを調べる際に皆様はどのような方法・ツールをお使いになられておりますでしょうか?

  • ログの解析プログラム

    perlにてログの解析プログラムを作成しております。 ログは各データの区切り文字がスペースで出力されます。 その為、例えば文字列で「プログラムの異常が発生しました (発生ノード)」が出力されている場合split関数によって配列に格納しようとすると「プログラムの異常が発生しました」と「(発生ノード)」に分解されて格納されてしまい後ほどの処理に影響が出てしまいます。ログの仕様として文字列を出力するときには直前に文字列の長さを提示しております。例えば「43 プログラムの異常が発生しました (発生ノード)」のような形で出力されます。これらの条件で文字列を一つの配列に格納するにはどのようなプログラムを組めばよろしいでしょうか。 現時点で考えているのは文字列の長さが出ているのでその回数分文字を1文字づつ読み込むことを考えております。ただし全角と半角の区別が自動でついてしまうと厄介なので全部半角として取り込めないかなどを検討しております。 なにか他にいいアイデアがありましたら教えてください。

  • [log4j]ログ出力クラスでのメソッド名出力方法

    お世話になっております。 現在log4jを使用したログの出力を検討しております。 その中で1点質問させてください。 Javaの初心者のため、質問がわかりにくいかもしれません。 申し訳ございません。 【質問】 クラスAのinit処理の中でログ出力用クラスBをインスタンス化し、 クラスAのメソッドCの中で、ログ出力用クラスBのログ出力メソッドDを実行することでログ出力させる方法を考えております。 ここでメソッドDで出力させるログの中にメソッドCの名前を出力させたいのですが、 方法がわかりません。 わかる方、教えていただけないでしょうか。 よろしくお願いいたします。

    • ベストアンサー
    • Java
  • Log4jで機能毎に別ファイルへ出力する方法

    こんにちは。 Log4jで複数のログファイルを出力する方法について質問させてください。 やりたい事としては・・・ WebアプリケーションからLog4jを使用して、ログ出力する際に サブアプリAからはsub-A.log サブアプリBからはsub-B.log などとログファイルを出力させたいと思っています。 Log4j.xmlでappenderタグを複数定義すれば良いだけかも知れませんが Java側でどうやって別のログオブジェクトを生成するのかが分かりません。 どの様にして別のオブジェクトの取得が出来るのでしょうか? それとも見当違いのことを質問していますでしょうか? よろしくご教授ください。 これが実現できれば… SQLだけのログ(DBバックアップ用) 例外だけのログ(監視用) などの用途に使えるのかと思っています。 よろしくお願いします。

  • log4jが連続して同じログを

    JSFにて、log4jでログファイルにログ出力を行っているのですが、一回のログ出力メソッド呼び出しで、同じログが2~8行出力されてしまいます。 例) yy/MM/dd HH:mm:ss.853, WARN , .... yy/MM/dd HH:mm:ss.853, WARN , .... yy/MM/dd HH:mm:ss.853, WARN , .... yy/MM/dd HH:mm:ss.853, WARN , .... yy/MM/dd HH:mm:ss.853, WARN , .... yy/MM/dd HH:mm:ss.853, WARN , .... yy/MM/dd HH:mm:ss.853, WARN , .... yy/MM/dd HH:mm:ss.853, WARN , .... ミリ秒単位で同じなので、一回出力されれば十分なのですが、複数行出力されています。 短時間で、かなりのサイズになってしまうため、困惑しております。 この事象の解決方法をご存じの方、解決方法をご教示願います。

  • Windows2000/XP/2003 イベントログ解析

    Windowsイベントログをファイルに出力し、そのログを解析し、レポートに出力できるツールを探しています。何か良いツールはないでしょうか? Windowsイベントログ  出力:evt,txt,csv等(手動) 解析ツール  言語:日本語版  取込:evt,txt,csv等  レポート:情報・警告件数・エラー件数を表又は       円グラフなどで出力できるもの

  • アクセスカウンタの非表示かログ解析か

    上司の命で、部のホームページを作成することになりました。 来訪者数をカウントしたいのですが、アクセスカウンタは表示したくない (来訪者には見せたくない)とのことです。 この場合はどうすればよいでしょうか? アクセスログ解析ツールを導入する形になるのでしょうか? よい方法があればアドバイスをお願いいたします。

  • アクセスログの解析スクリプト

    アクセスログの解析スクリプト Googleからの訪問者の検索ワード集計を行いたいと思っております。 本当はperlで書きたかったのですが、 全く知識がないためphpにしました。 それに正規表現について全くわかっていませんが、 以下までは何とか辿り着く事が出来ました。 <?php $fp_in = fopen("./access_log", "r"); $fp_out = fopen("./out.log", "a"); $pattern = "http:\/\/www\.google\.co(.*)\/search\?(.*)$". "(/[-.!~*\d\w;/?:@&=+$,%#]+)?"; while (!feof($fp_in)) {   $data = fgets($fp_in, 65536);   if (ereg ( $pattern, $data, $url )) {     $ary = split('&', $url[2]);     foreach ($ary as $value) {       if (strstr ($value, 'q')) {         if (!fwrite($fp_out, $value)) {           print "Cannot write to file ($filename)";           exit;         }       }     }   } } fclose($fp_in); fclose($fp_out); ?> 「q」で始まる配列をout.logに出力しております。 ここから文字列を分割して行こうと思っているのですが、 検索ワードは半角・全角スペースが混在しているため、 どのようにしたら良いかつまずきました。 手詰まり状態&もっと効率的なロジックがあると思っています。 どうかアドバイスをお願いいたします。

    • 締切済み
    • PHP
  • log4jはメソッドごとにインスタンスをゲットしないといけない???

    Servlet-JSPの開発をしています。 log出力のためにlog4jを使うことにしましたが、 メソッドごとに Logger logger = Logger.getLogger("TEST"); BasicConfigurator.configure(); logger.setLevel(Level.INFO); という記述を書かないと、出力されません。 この方法しかないのでしょうか? それとも他にまとめることもできるのでしょうか?

専門家に質問してみよう