log4j 分不同目录输出-xml版
据我目前的功力,也就是只能分2个不同的地方,且这2个地方互不干扰,相互独立。
?
如果这2者是相互重复的,那么这个就太容易了啊。直接设多个appender,然后file后面的地址写不一样就行了。
但是要考虑到,它们受level的影响,指定某个级别的level以上的level全是输出的。
?
下面将举个例子,利用的就是logger 和 root的区别!
?
完整的log4j.xml配置如下:
?
?
?解释如下:1、root设的是全局的level,然后logger那段是要继承root的设置的,然而在我们这我们不想继续它,将additivity设为false即可。
?
2、对于file=地址,这里的地址可以用相对地址,不过在打包成jar后一般都不认识了。我暂时还没找到完美的方法,只能傻傻的用绝对路径,即D:/UA/UADebugLogs/debug.log。或者D:\\UA\\UADebugLogs\\debug.log。
?
3、对于DailyRollingFileAppender而言,当天的日志文件是不会加上日期的,只有昨天以前的文件前面才会加上日期。这一点请注意。
?
?
4、对于Logger的name的更深的理解:
?
?
private Logger logger=Logger.getLogger("result")和private Logger logger=Logger.getLogger(UACognos.class.getName())?一般我们都习惯用第2种方法,然后在log4j的输出文件中写的就是这个类的名字。而且这样写就意味必须继承root的设置。如果你不想继承root的话,那么就得像第一种写法一样,用指定的特殊的logger。
?
?
关于2、3两点,其实都可以写一博文来解释。会在csdn上写的。
?
?
refurl:1、http://ankyhe.iteye.com/blog/1143927
2、http://willow-na.iteye.com/blog/347340
3、http://zhangxiang390.iteye.com/blog/258455
?
?
?