ログの設定はどうすればよいですか?

Glassfish は、ロギングの基盤として、Java の java.util.logging システムを使っています。java.util.logging
の情報については、適切な JDK のドキュメントを参照してください。

Glassfish のロギングを構成する主要なインターフェースは、管理コンソールの「アプリケーションサーバー ->
ログ」タブです。

「ログ」タブはその中に、「一般」と「ログレベル」の2つのタブがあります。

「一般」タブは、ログファイルを書き出すファイルやSyslog を使うかなどの構成に使います。

「一般」タブで、カスタマイズに際してよく使われるアトリビュートは、「ログファイル」
あるいは、「ファイルローテーションの制限」あるいは「ファイルローテーションの制限時間」だと思います。

「ログファイル」のプロパティは、システムのログファイルに使うファイル名をサーバーに知らせます。

「ファイルローテーションの制限」は、現在のログファイルの名前を変えて、新しいログファイルを作成する
際のファイルサイズをサーバーに知らせます。ここのフィールドはバイト単位なので、2000000 は 2MB の
ファイルとなります。

「ファイルローテーションの時間制限」は新しいファイルを作成するまでの時間をサーバーに知らせます。
このフィールドの単位は分ですので、60 を指定すると、1時間毎に新しいファイルを生成します。時間制限
は、ファイルサイズに関係なく新しいファイルを作成しローテートする点に注意してください。

「ログレベル」タブは、サーバー内のログレベルを変更するために使います。

開発コミュニティでの一般的な習慣としては、ロガーが使われるクラス名の後にロガーの名前を付けますが、
Glassfish 開発者は、ロガーをサブシステムに統合しています。例えば「Web コンテナ」のカテゴリは、
組み込まれている Tomcat コンテナーと JSP コンパイラーと内部の Web コンテナクラスをカバーします。

ドロップダウンリストを使って、各サブシステムのログレベルを適切な値に設定します。デフォルト値は
INFO です。FINEST がもっとも高いログレベルで、SEVERE が最も荒いレベルです。OFF はそのサブシステム
のログを停止します。

変更は直ちに反映され、実行中のコンテナでレベルの変更がすぐに使えます。

このページの一番下にあるプロパティについては補足情報があります。

ここは、特定のクラスのログレベルを変更するなど、ログを最適にチューニングするために使われます。

アプリケーションが java.util.logging システムを使っている場合、ここにプロパティを追加することに
よりロガーを直接コントロールできます。

例えば、com.example ドメインから始まるクラスを考えてください。そして、このクラス名の後ろにロガーの
名前を付けるとします。

この場合、com.example プロパティ名の値を INFO にすることで、ログレベルを INFO に設定できます。

com.example.mywebapp.BuggyServlet サーブレットに問題があるとします。

実行中のサーバーでは、単純に com.example.mywebapp.BuggyServlet プロパティの値に FINE を追加するだけで、
BuggyServlet のログメッセージがログにフォワードされます。
詳細な情報を集め終わったら、このプロパティを消すか、ログレベルを例えば INFO に変更してください。
サーバー運用時はこの機能は便利で、開発者が独自にこの機能を実装する必要はありません。


日本語翻訳: shioda

英文 (翻訳したバージョン: 6)