Show page source of Properties #79563

[[PageNavi(NavigationList)]]

=== 設定ファイルの書き方 ===
設定ファイルについては、[http://log4cpp-jp.sourceforge.jp/api/classlog4cpp_1_1PropertyConfigurator.html こちら]に書かれていますが、情報が少なすぎなので説明します。

==== 例 ====
{{{
# 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
}}}

==== 基本的なこと ====
{{{ html
<span style="float:right">
}}}

{{{ GoogleAdsense
<script type="text/javascript"><!--
google_ad_client = "ca-pub-0702888637712330";
/* 20120131 */
google_ad_slot = "8641490082";
google_ad_width = 300;
google_ad_height = 250;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
}}}

{{{ html
</span>
}}}

基本的にはJavaのプロパティファイルの形式です。[[BR]]
と言っても良く分からないので、説明します。[[BR]]

==== 形式 ====
 形式は、
 キー名=値[[BR]]
です。[[BR]]

 キー前後、および、値の前後にスペースがあってもかまいません。[[BR]]
すなわち、[[BR]]
 !__!__キー!__!__=!__!__値!__!__!__!__!__!__[[BR]]
となっていてもかまいません(※ここで「_」は半角スペースを表す)。[[BR]]

 ちなみに、キー名の先頭に「log4j.」あるいは「log4cpp.」があった場合、それは無視されます(削除された状態で管理される)。


==== コメント ====
「#」の後はコメントと見なされます。

==== 1行の長さ ====
1行の長さの最大長は255文字(バイト)です。[[BR]]
注意:先頭文字が「#」で、コメント行であっても255までです。[[BR]]
これを超えると、うまく読み込まれなくなります。

==== 環境変数や他のキーに対する値への置換 ====
 まず、使うことはないと思いますが、値については環境変数を使うことができます。[[BR]]
環境変数名は「${」と「}」の間にはさんでください。[[BR]]
例えば、[[BR]]
 {{{test.subst.1=> ${HOME} <}}}[[BR]]
だと[[BR]]
 {{{test.subst.1=> /home/takashi <}}}[[BR]]
のように展開されます(※もちろん、環境に依存します)。

 他のキーに対する値に置換することもできます。[[BR]]
例えば、[[BR]]
 {{{appender.A4=org.apache.log4j.FileAppender}}}[[BR]]
 {{{test.subst.3=> ${appender.A4} <}}}[[BR]]
だと、2つめは、
 {{{test.subst.3=> org.apache.log4j.FileAppender <}}}[[BR]]
のように展開されます。[[BR]]
注意:ここでのキー名は、キー名の先頭の「log4j.」もしくは「log4cpp.」を取り除いたキー名です。[[BR]]
それと、定義順を逆にするとうまくいかないです。

 なお、定義されてない環境変数名、あるいは、キー名が設定された場合、空文字で置換されます。

==== 解析エラーとかを起こしたら? ====
{{{ html
<span style="float:right">
}}}

{{{ GoogleAdsense
<script type="text/javascript"><!--
google_ad_client = "ca-pub-0702888637712330";
/* 20120131 */
google_ad_slot = "8641490082";
google_ad_width = 300;
google_ad_height = 250;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
}}}

{{{ html
</span>
}}}

 無視して次の行を解析しようとします。[[BR]]
このため、ロクに解析もしないということがあります。[[BR]]
また、何行目の何列目のどこどこが悪いですといった例外はスローしてくれません。[[BR]]
 testsディレクトリの中に「testProperties.cpp」があります。これは読み込んだ設定ファイルをコンソールに出力するだけのテストプログラムなのですが、自分で作成した設定ファイルで思うようにログ出力されていないようなときには使ってみる価値があります。[[BR]]
 ビルドは、*nix(LinuxやUnixのこと)であれば、cdコマンドでtestsディレクトリに移動し、[[BR]]
 {{{g++ -o testProperties testProperties.cpp -I../include -I../src -L../src/.libs -llog4cpp -lpthread -static}}}[[BR]]
としてください。

[[PageNavi(NavigationList)]]