This Project Has Not Released Any Files
設定ファイルについては、こちらに書かれていますが、情報が少なすぎなので説明します。
# a simple test config log4j.rootCategory=DEBUG, rootAppender log4j.category.sub1=A1 log4j.category.sub2=INFO log4j.category.sub1.sub2=ERROR, A2 log4j.appender.rootAppender=org.apache.log4j.ConsoleAppender log4j.appender.rootAppender.layout=org.apache.log4j.BasicLayout log4j.appender.A1=org.apache.log4j.FileAppender log4j.appender.A1.fileName=A1.log log4j.appender.A1.layout=org.apache.log4j.BasicLayout log4j.appender.A2=org.apache.log4j.ConsoleAppender log4j.appender.A2.layout=org.apache.log4j.PatternLayout log4j.appender.A2.layout.ConversionPattern=The message %m at time %d%n
基本的にはJavaのプロパティファイルの形式です。
と言っても良く分からないので、説明します。
形式は、
です。
キー前後、および、値の前後にスペースがあってもかまいません。
すなわち、
となっていてもかまいません(※ここで「_」は半角スペースを表す)。
ちなみに、キー名の先頭に「log4j.」あるいは「log4cpp.」があった場合、それは無視されます(削除された状態で管理される)。
「#」の後はコメントと見なされます。
1行の長さの最大長は255文字(バイト)です。
注意:先頭文字が「#」で、コメント行であっても255までです。
これを超えると、うまく読み込まれなくなります。
まず、使うことはないと思いますが、値については環境変数を使うことができます。
環境変数名は「${」と「}」の間にはさんでください。
例えば、
だと
のように展開されます(※もちろん、環境に依存します)。
他のキーに対する値に置換することもできます。
例えば、
だと、2つめは、
のように展開されます。
注意:ここでのキー名は、キー名の先頭の「log4j.」もしくは「log4cpp.」を取り除いたキー名です。
それと、定義順を逆にするとうまくいかないです。
なお、定義されてない環境変数名、あるいは、キー名が設定された場合、空文字で置換されます。
カテゴリやアペンダーなどの設定方法は以下の通りです。
※設定順は、値に「${」、「}」を使った別のキーの値の置換を使用しない限りは、どのような順であってもかまいません。
ルートカテゴリについてはキー名を「rootCategory」とします。その他のカテゴリについてはキー名を「category.カテゴリ名」とします。
値は、優先度をまず定義し、以降、カンマ区切りでそのカテゴリに設定するアペンダー名を列挙します。
※カテゴリを階層構造にする場合は「.」で区切ってください。「::」で区切らないでください。
※注意:ルートカテゴリの優先度にNOTSET(未設定)は設定できません。
カテゴリに設定するadditivityについては、キー名を「additivity.rootCategory」か「additivity.category.カテゴリ名」とします。値には「true」か「false」が設定可能です。additivityの設定を省略するとtrueを設定したものと見なされます。
アペンダーを設定するには、まず、「appender.アペンダー名」というキーを定義し、その値を、アペンダーのクラス名とします。
アペンダーのクラス名として有効なのは以下のものです。
※クラス名は最後の「.」以降のものが有効で、それより前のものは単に無視されるので、「org.apache.log4j.ConsoleAppender」としても、単に「ConsoleAppender」としても同様です。
※注意:すみませんが、「log4cpp::ConsoleAppender」のように「::」で区切るのはやめて下さい。
※注意:OS等の環境によっては上記のクラスのうちいくつかは使用できないものがあります。
※注意:log4cppにはConsoleAppenderというクラスはありません。ConsoleAppenderを指定するとlog4cpp::OstreamAppenderが使用されます。
全ての(?)アペンダーに共通する設定として、閾値(しきいち:threshold)とレイアウト、フィルターがあります。
まず、閾値については、キーと値を次のように設定します。
設定を省略すると、NOTSET(未設定)を設定したと見なされます。
次に、レイアウトですが、キーと値を次のように設定します。
※クラス名は最後の「.」以降のものが有効で、それより前のものは単に無視されるので、「BasicLayout」は「org.apache.log4j.BasicLayout」としても良いです。
※注意:すみませんが、「log4cpp::BasicLayout」はダメです。
※注意:レイアウトが設定できないアペンダーに対してレイアウトを設定しても無視されます。
※注意:レイアウトの設定を省略するとBasicLayoutを設定したものと見なされます。
※クラス名を「PatternLayout」とした場合、「appender.アペンダー名.layout.ConversionPattern」というキーを定義でき、その値に、 log4cpp::PatternLayout::setConversionPattern()で使用できるフォーマット文字列を使用して任意のフォーマットを指定できます。省略すると、「"%m%n」となります。
フィルターについてですが、これについては設定ファイルからの設定は不可能となっています。log4cpp::PropertyConfigurator::configure()メソッドを使用して設定ファイルから設定を読み込んだ後、プログラムから設定をする必要があります。
後は、アペンダーのクラスに固有の設定ですね。それについては、 キー名を「appender.アペンダー名.設定名(fileName)など」とします。 詳細は以下の通りです。
基本的には無視して次の行を解析しようとします。このため、ロクに解析もしないということがあります。
また、必ずしも何行目の何列目のどこどこが悪いですといった例外はスローしてくれません(スローしてくれる場合もある)。
testsディレクトリの中に「testProperties.cpp」があります。これは読み込んだ設定ファイルをコンソールに出力するだけのテストプログラムなのですが、自分で作成した設定ファイルで思うようにログ出力されていないようなときには使ってみる価値があります。
ビルドは、*nix(LinuxやUnixのこと)であれば、cdコマンドでtestsディレクトリに移動し、
としてください。
[PageInfo]
LastUpdate: 2012-04-08 22:56:58, ModifiedBy: daruma_kyo
[License]
GNU Free Documentation License
[Permissions]
view:all, edit:login users, delete/config:members