Nimbus2のログサービスを提供します。

ロギングと言えば、The Apache Jakarta ProjectのCommons LoggingやLog4Jなどが有名です。 それらのロギングの概念は、クライアント側が出力するメッセージを決め、メッセージの出力レベルに合ったメソッドを呼び出すと言うものです。 以下にその実装例を示します。

 Logger logger = Logger.getInstance(this.getClass());
 logger.info("Information Level Message");
 logger.error("Error Level Message");
このロギングのインタフェースは、非常にシンプルで使いやすい事は分かります。 しかし、実際のエンタープライズなアプリケーションにおいて、運用・保守まで考えてロギングを行う場合、このようなインタフェースでは、以下のような問題が生じます。
Nimbus2のロギングの概念は、メッセージには、文言や出力レベル、出力先など様々な付加情報があり、それを意識するのは、ロギングを行うアプリケーションではないと言うものです。 そのため、Nimbus2のロギングのインタフェースでは、メッセージに一意に付与されるIDを渡して、出力を依頼するというだけです。 そのインタフェースには、出力レベルどころか、メッセージすら現れません。
 Logger logger = (Logger)ServiceManagerFactory.getServiceObject("LogService");
 logger.write("NIMBUS_0001");
 logger.write("NIMBUS_0002");
それらの付加情報は、別の場所で定義するのです。付加情報を外出しにする事で、メッセージの管理や、出力レベル・出力先の変更など、メッセージに付加される情報の変更が、アプリケーションに影響を及ぼさなくなります。
このように、一意なメッセージIDのみでログの出力を依頼する簡潔な機能を抽象化したインタフェースが、Loggerです。

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