问题描述
现在有这个要求,要根据为某个包下一级包进行日志隔离,但有多少一级包不确定。如:包结构是这样的: package.subpackage1 package.subpackage2现在要将subpackage1下所有类的日志车出subpackage1.log文件中,subpackage2的类写到subpackage1.log中,以此类推。package下以后可能还会加subpackage3、subpackage4、subpackage5.....,但log4j的配置文件以后是不能改的,请各位大牛帮忙想想办法 问题补充:应该是现在要将subpackage1下所有类的日志车出subpackage1.log文件中,subpackage2的类写到 subpackage2.log中,以此类推。package下以后可能还会加subpackage3、subpackage4、 subpackage5.....,但log4j的配置文件以后是不能改的,请各位大牛帮忙想想办法
解决方案
自定义的一个Appender 参考http://www.cnblogs.com/wonderow/archive/2005/05/18/158554.html
解决方案二:
在log4j.xml配置文件中:<appender name="A1" class="org.apache.log4j.RollingFileAppender"> <param name="File" value="C:/subpackage1.log" /> <param name="Encoding" value="GBK" /> <param name="MaxBackupIndex" value="10" /> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="[%d{yyyy-MM-dd HH:mm:ss.SSS}] %m%n" /> </layout> </appender><logger name="package" additivity="false"><level value="ALL" /><appender-ref ref="A1" /></logger>package下以后可能还会加subpackage3、subpackage4、subpackage5就都写到写到subpackage1.log中