| Interface | Description |
|---|---|
| LogFormatter |
ログのフォーマットを行うインタフェース。
ログのフォーマットの種類毎に本インタフェースの実装クラスを作成する。 |
| LogWriter |
ログを出力先に書き込むインタフェース。
出力先の媒体毎に本インタフェースの実装クラスを作成する。 |
| Class | Description |
|---|---|
| AppLogJsonSerializationManager |
各種ログのJSON形式による出力に対応した
JsonSerializationManagerの実装クラス。 |
| BasicLogFormatter |
LogFormatterの基本実装クラス。BasicLogFormatterクラスの特徴を下記に示す。 ログに最低限必要な情報(日時、リクエストID、ユーザIDなど)を出力できる。 アプリケーションを起動しているプロセスを識別するために、システムプロパティで指定されたプロセス名をログに出力できる。 オブジェクトを指定してフィールド情報を出力できる。 例外オブジェクトを指定してスタックトレースを出力できる。 フォーマットを設定のみで変更することができる。 BasicLogFormatterは、プレースホルダを使用してフォーマットを指定する。 フォーマットに指定可能なプレースホルダの一覧を下記に示す。 |
| JsonLogFormatter | |
| LogContext |
ログ出力に必要な情報を保持するクラス。
スレッド名、ユーザID、リクエストIDは、スレッドに紐付く値をクラスの内部で設定する。 |
| LogWriterSupport |
LogWriterの実装をサポートするクラス。このクラスでは、下記の機能を提供する。 LogLevelに応じた出力制御
LogFormatterを使用したログのフォーマット
上記の機能は、プロパティファイルに設定を記述して使用する。プロパティファイルの記述ルールを下記に示す。 writer.< LogWriterの名称>.level
LogLevelの名称。オプション。LogLevelの名称を指定する。ここで指定したレベル以上のログを全て出力する。 指定がない場合はレベルに応じた出力制御を行わず、全てのレベルのログを出力する。 writer.< LogWriterの名称>.formatter.className
LogWriterで使用するLogFormatterのクラス名。LogFormatterを実装したクラスのFQCNを指定する。
指定がない場合はBasicLogFormatterを使用する。
writer.<LogWriterの名称>.formatter.<プロパティ名>
LogFormatter毎のプロパティに設定する値。設定内容は、使用する LogFormatterのJavadocを参照すること。
|
| ObjectSettings |
ログ出力機能の設定からオブジェクトに対する設定を抜き出して保持するクラス。
|
| Enum | Description |
|---|---|
| LogLevel |
ログレベルを表す列挙型。
本フレームワークにおけるログレベルは、FATAL>ERROR>WARN>INFO>DEBUG>TRACEの6段階とし、FATALからTRACEに向かって順にレベルが低くなる。 レベルに応じた出力制御では、指定されたレベル以上のログを全て出力する。 例えば、WARNレベルが指定された場合は、FATALレベル,ERRORレベル,WARNレベルで出力を指示しているログのみ出力する。 ログレベルの定義を下記に示す。 下記を参考にプロジェクト毎にログレベルの使用方法を決定すること。 FATAL アプリケーションの継続が不可能になる深刻な問題が発生したことを示す。 監視が必須で即通報および即対応が必要となる。 通常は、運用監視体制と密接に関わるため、個別アプリケーションではなくフレームワークで出力する。 ERROR アプリケーションの継続に支障をきたす問題が発生したことを示す。 監視が必須であるが、通報および対応にFATALレベルほどの緊急性がない。 通常は、運用監視体制と密接に関わるため、個別アプリケーションではなくフレームワークで出力する。 WARN すぐには影響を与えないが、放置しておくとアプリケーションの継続に支障をきたす問題になる恐れがある事象が発生したことを示す。 できれば監視した方がよいが、ERRORレベルほどの重要性がない。 通常は、運用監視体制と密接に関わるため、個別アプリケーションではなくフレームワークで出力する。 INFO 本番運用時にアプリケーションの情報を出力するログレベル。 アクセスログや統計ログが該当する。 通常は、運用監視体制と密接に関わるため、個別アプリケーションではなくフレームワークで出力する。 ログファイルのサイズが肥大化しないよう出力内容を設計する。 DEBUG 開発時にデバッグ情報を出力するログレベル。 SQLログや性能ログが該当する。 本番運用時は、ログファイルのサイズが肥大化するため出力してはならない。 TRACE 開発時にデバッグ情報より、さらに細かい情報を出力したい場合に使用するログレベル。 本番運用時は、ログファイルのサイズが肥大化するため出力してはならない。 |