我是全新的log4j,我似乎無法弄清楚這一點。如果我將log4j.configuration設置爲某個不存在的垃圾文件,那麼以下程序按我的預期工作。但是,如果我不這麼做,這是無聲的(比打印出的屬性等):log4j輸出抑制?
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從哪裏獲得它的指示?
不,你錯過了。我不想從配置文件讀取。我試圖運行BasicConfigurator的例子,並且有些東西壓制了我期望的日誌輸出。 – 2009-02-19 22:56:18