私はlog4jを初めて使用していますが、これを理解できないようです。log4j.configuration を存在しないガベージ ファイルに設定すると、次のプログラムは期待どおりに動作します。しかし、そうしないと、サイレントになります(プロパティを出力する以外):
package com.example.test;
import org.apache.log4j.*;
public class Log4jExample2 {
final static Logger logger = Logger.getLogger("test.Log4jExample2");
static void kvshow(String[] karray)
{
for (String k : karray)
{
String v = System.getProperty(k);
System.out.println(k+"="+v);
}
}
public static void main(String[] args) {
kvshow(new String[] {"log4j.configuration", "log4j.properties"});
BasicConfigurator.configure();
logger.debug("Hello world.");
}
}
実行時セッションは次のとおりです。
>java -cp test-20090219.jar com.example.test.Log4jExample2
log4j.configuration=null
log4j.properties=null
>java -cp test-20090219.jar -Dlog4j.configuration=blah.cfg com.example.test.Log4jExample2
log4j.configuration=blah.cfg
log4j.properties=null
0 [main] DEBUG test.Log4jExample2 - Hello world.
私は困惑しています。(繰り返しますが、blah.cfg というファイルはありません。これが私が作業を行うための最も簡単な方法でした) log4j はどこから指示を取得していますか?