- - PR -
みなさんはどうやってLoggerを記述していますか?
1
投稿者 | 投稿内容 | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-06-05 01:03
何度もすみません。
今回の業務で初めてjava.util.loggingのLoggerを使用することに なったのですが、みなさんはどうやって使っているか参考にしたく 投稿させていただきました。 ちなみに自分は、下記のように c:/workspace/MyClass/log (myclassはコンテキストルートになります。) に格納しています。 あと、同じログの名前で追記をしたかったのでstaticで 記入しました。 もし、おかしい所やこんな方法でやっているというのあが ありましたら教えてください。よろしくお願い致します。 //ログ private static Logger logger = Logger.getLogger("myclass.logging"); static { try { FileHandler fh = new FileHandler("c:¥¥workspace¥¥myclass¥¥log¥¥myclass.log", 100000, 1, true); fh.setFormatter(new SimpleFormatter()); logger.addHandler(fh); logger.setLevel(Level.INFO); } catch (SecurityException e){ } catch (IOException e){ } } | ||||||||||||||||
|
投稿日時: 2006-06-06 13:27
どのような業務ですかね? Java アプリケーションで使用するなら設定ファイルを置いておくのが便利です。 当方がよくやる方法を記述します。 1.以下のような設定ファイルを作成
handlers は使用するログハンドラ。 それぞれのハンドラに対してログのレベルなどのオプションを指定。 myapplication.level はパッケージ "myapplication" (ロガーの名称に一致)のログレベル。 設定ファイルの記述方法は LogManager の Javadoc を中心に記述されています。 各ハンドラに指定可能なオプションはそれぞれのハンドラの Javadoc に記述されています。 2.アプリケーション初期化時に LogManager に読み込ませる。
ちなみに、ログレベルはロガーごとに設定することが可能で、 サブパッケージのオプションを記述していない場合には上位パケージのオプションが引き継がれます。 1.の設定ファイルで、 "myapplication" パッケージのレベルは Level.INFO を指定しており、 "myapplication.subpackage" パッケージのレベルは "myapplication" のレベルを引き継ぎます。 "myapplication.subpackage" のログレベルを Level.ALL にしたい場合には、
を指定することで、"myapplication.subpackage" パッケージ以下のレベルだけ ALL に指定するといったことができます。 こうしておくと、リコンパイルすることなくログレベルを変えたり、 ログファイルのパス・名称・ローテート数を変えられたりして便利です。 参考になったかな? |
1