| 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(); }
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 群の生成この生成は、
各 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 を束ねる | << | >> |