MAP | PTLog ドキュメント > チュートリアル > PTLog Basic > Tap を束ねる | << | >> |
本節では、
LogTap
を束ねることで設定の利便性を向上させる方法を説明します。
デモンストレーション実装のbasic.bundle パッケージに属するクラス群も参照してください。
本チュートリアルでは、 クラスは全てクラス名のみで表記されています。 完全な名称は以下の通りです。
表記 | 完全名 |
---|---|
JCLProvider | jp.ne.dti.lares.foozy.ptlog.jcl.JCLProvider |
Log4jProvider | jp.ne.dti.lares.foozy.ptlog.log4j.Log4jProvider |
LogDirector | jp.ne.dti.lares.foozy.ptlog.LogDirector |
LogTap | jp.ne.dti.lares.foozy.ptlog.LogTap |
LogDirector
の生成前節においては, 以下に示すコードにより、 基礎となるログフレームワークの設定を行いました。
Client.TAP.setServer(Log4jProvider.INSTANCE);
// 基礎フレームワークとして Apache Log4j を使用
多くのクラスが LogTap
を保持するような状況では、
如何に基礎フレームワークの選択処理が複雑になるか、
想像してみてください。
それらを一括して設定したいと思いますよね?
PTLog は LogTap
群を束ねるために、
LogDirector
を提供しています。
LogDirector
は、
LogTap
群と基礎フレームワークの間における中間点として機能します。
はじめに、
以下に示すような実装で、
LogTap
群を束ねるための
LogDirector
インスタンスを生成してください。
public class LogConfig { .... final static public LogDirector DIRECTOR = new LogDirector(); }
次に、
ログ発行のクライアントとなるクラスにおいて、
以下のような実装で LogTap
群を生成してください。
public class Client1 { .... final static public LogTap TAP = new LogTap(Client1.class, LogConfig.DIRECTOR); } public class Client2 { .... final static public LogTap TAP = new LogTap(Client2.class, LogConfig.DIRECTOR); } ....
この生成は、
各 LogTap
群が、
LogDirector
インスタンスである
LogConfig#DIRECTOR
を、
ログの初期出力先として使用する、ということを意味しています。
以上で、
LogConfig#DIRECTOR
への
#setServer()
起動によって、
全ての LogTap
に対するログフレームワークの選択を一括して実施することが出来るようになりました
LogConfig.DIRECTOR.setServer(JCLProvider.INSTANCE);
// フレームワークとして Jakarata Commons Logging を使用
LogDirector
は、
他の LogDirector
の初期出力先として振舞うことも出来ますので、
幾つかの LogDirector
を他の LogDirector
により束ねることも出来ます。
これで、個々の LogTap
と、
LogDirector
により束ねられた全ての
LogTap
の、それぞれを設定できるようになりました。
MAP | PTLog ドキュメント > チュートリアル > PTLog Basic > Tap を束ねる | << | >> |