內容摘自:http://blog.csdn.net/wiwipetter/article/details/4390579
log4j.properties 使用: http://www.blogjava.net/hwpok/archive/2008/01/16/175711.html
如果在同一類中需要輸出多個記錄檔呢。其實道理是一樣的,先在Test.java中定義:
| private static Log logger1 = LogFactory.getLog("myTest1"); private static Log logger2 = LogFactory.getLog("myTest2"); |
然後在log4j.properties中加入:
| log4j.logger.myTest1= DEBUG, test1 log4j.appender.test1=org.apache.log4j.FileAppender log4j.appender.test1.File=${myweb.root}/WEB-INF/log/test1.log log4j.appender.test1.layout=org.apache.log4j.PatternLayout log4j.appender.test1.layout.ConversionPattern=%d %p [%c] - %m%n log4j.logger.myTest2= DEBUG, test2 log4j.appender.test2=org.apache.log4j.FileAppender log4j.appender.test2.File=${myweb.root}/WEB-INF/log/test2.log log4j.appender.test2.layout=org.apache.log4j.PatternLayout log4j.appender.test2.layout.ConversionPattern=%d %p [%c] - %m%n |
也就是在用logger時給它一個自訂的名字(如這裡的" myTest1 "),然後在log4j.properties中做出相應配置即可。別忘了不同日誌要使用不同的logger(如輸出到 test1.log 的要用 logger1 .info("abc"))。
還有一個問題,就是這些自訂的日誌預設是同時輸出到log4j.rootLogger所配置的日誌中的,如何能只讓它們輸出到自己指定的日誌中呢。別急,這裡有個開關:
log4j.additivity.myTest1 = false
它用來設定是否同時輸出到log4j.rootLogger所配置的日誌中,設為false就不會輸出到其它地方啦。注意這裡的"myTest1"是你在程式中給logger起的那個自訂的名字。
如果你說,我只是不想同時輸出這個日誌到log4j.rootLogger所配置的logfile中,stdout裡我還想同時輸出呢。那也好辦,把你的log4j.logger.myTest1 = DEBUG, test1改為下式就OK啦。
| log4j.logger.myTest1=DEBUG, test1, stdout |