Nimbus2のジャーナルサービスを提供します。

エンタープライズなシステムを構築する場合、各層でジャーナルを取得する必要があります。
ジャーナルには、

- アクセス開始時刻
- アクセス終了時刻
- アクセス時間
- アクセス識別子
- アクセスによる入出力情報

などのある程度決まった情報を取得します。
但し、入出力情報はシステムや取得する層によって異なり、出力するフォーマットや媒体も様々です。

まず、アプリケーションは、任意のオブジェクトをジャーナルに出力します。
その際、渡したオブジェクト毎に違うフォーマットで出力したくなるかもしれません。
例えば、文字列はそのままだけど、java.util.Dateオブジェクトは一定の日付フォーマットで出力したいとか。
例外オブジェクトならば、スタックトレースを出力したいとか。
そのようなオブジェクト毎の出力編集を行う概念を抽象化したインタフェースが、JournalEditorです。
また、オブジェクト毎に出力編集を行うJournalEditorをマッピングする機能を抽象化したインタフェースが、EditorFinderです。

次に実際の媒体への出力ですが、その機能はWriterパッケージのCategoryを使用します。

これらの要件を満たしつつ、ジャーナルを取得する機能を抽象化したのがJournalインタフェースです。

このパッケージでは、Journalインタフェースを実装したサービスを提供します。