サム、
あなたが求めているものがlog4jのデフォルトの動作であるかどうかはわかりません. できることは、log4j.rootLogger=DEBUG のようなプロパティをアプリケーション プロパティ ファイルに追加し、log4j がアプリケーション プロパティ ファイルを log4j プロパティ ファイルとして使用するように指定することです。
次の vm 引数を指定することで、log4j に構成ファイルを取得させることができます。
java -Dlog4j.configuration=resources/log4j_dev.properties
また
java -Dlog4j.configuration=file:/resources/log4j_dev.properties
log4j プロパティ ファイルの例は次のとおりです。
# Root logger option
log4j.rootLogger=INFO, stdout
# Direct log messages to stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
プロパティ ファイルに xml 形式を使用することもできます。
プログラムで (ラムタイムで) log4j のロガーを追加する場合は、次のようにする必要があります。
ConsoleAppender console = new ConsoleAppender(); //create appender
//configure the appender
String PATTERN = "%d [%p|%c|%C{1}] %m%n";
console.setLayout(new PatternLayout(PATTERN));
console.setThreshold(Level.FATAL);
console.activateOptions();
//add appender to any Logger (here is root)
Logger.getRootLogger().addAppender(console);
FileAppender fa = new FileAppender();
fa.setName("FileLogger");
fa.setFile("mylog.log");
fa.setLayout(new PatternLayout("%d %-5p [%c{1}] %m%n"));
fa.setThreshold(Level.DEBUG);
fa.setAppend(true);
fa.activateOptions();
/add appender to any Logger (here is root)
Logger.getRootLogger().addAppender(fa)
//repeat with all other desired appenders
お役に立てれば。