I'm brand new with log4j and I can't seem to figure this out. If I set log4j.configuration to some garbage file that doesn't exist, the following program works as I expect. But if I don't then it's silent (other than printing out the properties):
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.");
}
}
Here's a runtime session:
>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.
I'm stumped. (again, there is no file called blah.cfg, this was the simplest way I could get things to work) Where is the log4j getting its instructions from?