私のログはgetParam()
メソッドで発生します。しかし、それはmain
メソッドとして記録されます。また、3 つのオブジェクトがありますが、どのオブジェクトがログを記録しているかに関する情報が表示されません。私もその情報が欲しいです。
出力は次のとおりです。
INFO [main]: info
INFO [main]: debug
INFO [main]: trace
コードは次のとおりです。
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
class Log4jTest {
private static Logger log=Logger.getLogger(Log4jTest.class);
private String param;
public Log4jTest(String param){
this.param=param;
}
public String getParam(){
log.info(param);
return param;
}
}
public class Log4j_testing {
public static void main(String[] args) throws FileNotFoundException{
Log4jTest l1= new Log4jTest("info");
l1.getParam();
Log4jTest l2= new Log4jTest("debug");
l2.getParam();
Log4jTest l3= new Log4jTest("trace");
l3.getParam();
}
}
私のlog4j.プロパティ:
log4j.rootLogger=INFO, 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
log4j.appender.stdout.layout.ConversionPattern=%-5p [%t]: %m%n
別のメモ: 上記のコメント行のコメントを解除し、最後の行をコメントアウトすると、
11:19:41,586 INFO Log4jTest:19 - info
11:19:41,589 INFO Log4jTest:19 - debug
11:19:41,589 INFO Log4jTest:19 - trace
ログに記録されている正しい行番号(19)を提供しますが、正しい方法ではありません。