log4j,如何按级别输出日志到不同的文件

hzengzhi 2015-02-04 11:04:45
现在有3中日志 error、debug、info。 有三个文件error.log、debug.log、info.log
在一个main方法的调用logger.debug() ,log.error(),logger.info三个方法。
目前结果在debug.log文件中存在三种日志,在log.info中出现info、error两种日志,在error.log中出现error一种日志。

期望结果:在debug.log、error.log、info.log均只出现对应的一种日志。

...全文
2723 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
业余草 2015-02-04
  • 打赏
  • 举报
回复
业余草 2015-02-04
  • 打赏
  • 举报
回复
使用log4j.xml xml格式的配置文件可以使用filter. 例如想只把log4j的debug信息输出到debug.log.error信息输出到error.log,info信息输出到info.log log4j提供了下面一种方式来实现. 必须使用xml方式进行配置才能够支持filter过滤元素。 配置文件来自: http://www.mail-archive.com/log4j-user@jakarta.apache.org/msg09720.html <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> <log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/'> <appender name="STDOUT" class="org.apache.log4j.ConsoleAppender"> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%c %d{ISO8601} -- %p -- %m%n"/> </layout> </appender> <appender name="DEBUG" class="org.apache.log4j.RollingFileAppender"> <param name="File" value="C:\\logs\\app-debug.log"/> <param name="Append" value="true"/> <param name="MaxFileSize" value="500KB"/> <param name="MaxBackupIndex" value="2"/> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%c %d{ISO8601} -- %p -- %m%n"/> </layout> <filter class="org.apache.log4j.varia.LevelRangeFilter"> <param name="LevelMin" value="DEBUG" /> <param name="LevelMax" value="DEBUG" /> </filter> </appender> <appender name="INFO" class="org.apache.log4j.RollingFileAppender"> <param name="File" value="C:\\logs\\app-info.log"/> <param name="Append" value="true"/> <param name="MaxFileSize" value="500KB"/> <param name="MaxBackupIndex" value="2"/> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%c %d{ISO8601} -- %p -- %m%n"/> </layout> <filter class="org.apache.log4j.varia.LevelRangeFilter"> <param name="LevelMin" value="INFO" /> <param name="LevelMax" value="INFO" /> </filter> </appender> <appender name="WARN" class="org.apache.log4j.RollingFileAppender"> <param name="File" value="C:\\logs\\app-warn.log"/> <param name="Append" value="true"/> <param name="MaxFileSize" value="500KB"/> <param name="MaxBackupIndex" value="2"/> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%c %d{ISO8601} -- %p -- %m%n"/> </layout> <filter class="org.apache.log4j.varia.LevelRangeFilter"> <param name="LevelMin" value="WARN" /> <param name="LevelMax" value="WARN" /> </filter> </appender> <appender name="ERROR" class="org.apache.log4j.RollingFileAppender"> <param name="File" value="C:\\logs\\app-error.log"/> <param name="Append" value="true"/> <param name="MaxFileSize" value="500KB"/> <param name="MaxBackupIndex" value="2"/> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%c %d{ISO8601} -- %p -- %m%n"/> </layout> <filter class="org.apache.log4j.varia.LevelRangeFilter"> <param name="LevelMin" value="ERROR" /> <param name="LevelMax" value="ERROR" /> </filter> </appender> <root> <priority value="debug"/> <appender-ref ref="STDOUT"/> <appender-ref ref="DEBUG"/> <appender-ref ref="INFO"/> <appender-ref ref="WARN"/> <appender-ref ref="ERROR"/> </root> </log4j:configuration>
hzengzhi 2015-02-04
  • 打赏
  • 举报
回复
log4j.rootLogger=debug,stdout,info,debug,error log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=[%-5p] [%d{HH:mm:ss}] %c - %m%n log4j.logger.info=info log4j.appender.info=org.apache.log4j.DailyRollingFileAppender log4j.appender.info.layout=org.apache.log4j.PatternLayout log4j.appender.info.layout.ConversionPattern=[%-5p] [%d{HH:mm:ss}] %c - %m%n log4j.appender.info.datePattern='.'yyyy-MM-dd log4j.appender.info.Threshold = INFO log4j.appender.info.append=true log4j.appender.info.File=info.log log4j.logger.debug=debug log4j.appender.debug=org.apache.log4j.DailyRollingFileAppender log4j.appender.debug.layout=org.apache.log4j.PatternLayout log4j.appender.debug.layout.ConversionPattern=[%-5p] [%d{HH:mm:ss}] %c - %m%n log4j.appender.debug.datePattern='.'yyyy-MM-dd log4j.appender.debug.Threshold = DEBUG log4j.appender.debug.append=true log4j.appender.debug.File=debug.log log4j.logger.error=error log4j.appender.error=org.apache.log4j.DailyRollingFileAppender log4j.appender.error.layout=org.apache.log4j.PatternLayout log4j.appender.error.layout.ConversionPattern=[%-5p] [%d{HH:mm:ss}] %c - %m%n log4j.appender.error.datePattern='.'yyyy-MM-dd log4j.appender.error.Threshold = ERROR log4j.appender.error.append=true log4j.appender.error.File=error.log

5,657

社区成员

发帖
与我相关
我的任务
社区描述
Web开发应用服务器相关讨论专区
社区管理员
  • 应用服务器社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧