各位:
我现在碰到一个问题,就是在想在配置log4j的时候,能够按不现的包输出到不同的文件,而且不同的包下面的不同日志级别也分别输出到不同的文件,下面是我现在的配置,请各位从百忙之中看一下:
log4j.debug=false
log4j.additivity.com.abc.def=false
log4j.logger.com.abc.def=debug, ACTION,stdout
log4j.appender.ACTION=org.apache.log4j.DailyRollingFileAppender
log4j.appender.file.DatePattern='.'yyyy-MM-dd
log4j.appender.ACTION.file=d:\DMSUC\log\ACTION\action.log
log4j.appender.ACTION.encoding=UTF-8
log4j.appender.ACTION.layout=org.apache.log4j.PatternLayout
log4j.appender.ACTION.layout.ConversionPattern=%d{HH:mm:ss,SSS} [%t] %5p [%C{1}:%L] - %m%n
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{yyyy-MM-dd HH:mm:ss,SSS} [%t] %5p [%C{1}:%L] - %m%n
###配置根记录器的级别和输出路径 ###
log4j.rootLogger=INFO, stdout,ACTION
log4j.logger.com.abc=INFO
也是说我想将com.abc.def中的日志按日志级别的不同可以输出到不同的文件,在网上查的资料只有不区分包名来输出,迷惘中!
[b]问题补充:[/b]
大哥:
如何改成properties文件,必须用xml吗?
:D 我只写过xml的,properties形式的也能写,但有点吃力了。
但是形式无所谓,原理都是一样的。
包不是特别多的话,可以为每一个包定义多个appender,appender分别写出到不同的目的地,同时分不同级别。比如:
[code="xml"]
<?xml version="1.0" encoding="Shift_JIS"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
<param name="Target" value="System.out" />
<param name="Threshold" value="INFO" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{yyyy/MM/dd, HH:mm:ss:SSS}, %p, %m%n" />
</layout>
</appender>
<logger name="jp.co.tv_asahi.p095" additivity="false">
<level value="debug" />
<appender-ref ref="Prism095" />
<appender-ref ref="Prism095Error" />
<appender-ref ref="CONSOLE" />
</logger>
/log4j:configuration
[/code]
因为lz的配置可能会涉及多个包,因此,应避免不同包的logger往上继承(additivity="false"),以免混乱。