Blogn - 记录个人历史 Ver 3.0.0
http://www.bloggern.com
首页  留言本  注册  用户名: 密码:  
Log4j根据Log级别输出到不同文件的配置
作者:小猪   625字节   点击:42462   回复:2126   所属分类:挨踢的人
创建时间:2010-10-25 12:29:30   最后修改时间:2010-10-25 12:33:50  
最简单的办法是设置Threshold,或者可以用filter。网上可以找到一堆文档,这里特别记录一下的是,所有的文档都说,property格式的配置文件不支持filter,都是在瞎说,为了给搜索同样解决方案的人留个答案,特地在这里记录一下。

log4j.appender.Console.filter.myrange=org.apache.log4j.varia.LevelRangeFilter
log4j.appender.Console.filter.myrange.levelMax=DEBUG
log4j.appender.Console.filter.myrange.levelMin=DEBUG

网上有个错误的配置示例,filter后没有给出filter的名字,因此log4j启动会报错,正确的思路是,log4j支持在一个appender上定义多个filter,因此要为每一个filter命名,然后为每一个命名filter定义规则。myrange就是自定义的filter名字了。
附件:
评论:
来自: 116.236.180.*   字节:91  ID:16962  发贴时间:2010-11-05 18:15:22  原贴 
Threshold和filter我都试了下,好像都没配成功,不知道哪里写错了。能指点一下吗?
QQ 402620808  
来自: 116.236.180.*   字节:978  ID:16963  发贴时间:2010-11-05 18:24:06  原贴 
我的配置如下,但是产生的log文件里并不只有error级别的log,不知道哪里没写对

log4j.rootLogger=INFO,Console,LogFile

#Console
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=%d{HH:mm:ss,SSS} [%t] %-5p %C{1} : %m%n

#LogFile
log4j.appender.LogFile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.LogFile.encoding=UTF-8
log4j.appender.LogFile.Append=true
log4j.appender.LogFile.ImmediateFlush=true
log4j.appender.LogFile.DatePattern='.'yyyy-MM-dd-a
log4j.appender.LogFile.File=/myLog.log
log4j.appender.LogFile.layout=org.apache.log4j.PatternLayout
log4j.appender.LogFile.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} [%t] [%c] [%p] - %m%n
log4j.appender.LogFile.filter.myrange=org.apache.log4j.varia.LevelRangeFilter
log4j.appender.LogFile.filter.myrange.levelMax=ERROR
log4j.appender.LogFile.filter.myrange.levelMin=ERROR  
来自: 小猪   字节:80  ID:16989  发贴时间:2010-11-10 12:09:06  原贴 
楼上的,想要过滤的输出,不要放到rootlogger上去,具体的自己去查文档或者google吧。  

本文允许匿名评论

发表评论:(最长不得超过128KB)
验证码:


您不能对本文发表评论。