当前位置:编程学习 > JAVA >>

求解答:log4j信息可以输入到console,但输出不到文件。

我是用log4j.properties来配置log4j的。

本意打算log4j的信息既在console上显示,也可输出到*.log文件。现在在console上显示没有问题,*.log文件也生成了,但就是log文件中空白没有内容。大家知道为什么吗?

以下是我的log4j.properties的内容。


log4j.rootLogger=ERROR,console
log4j.logger.testLogger=,file

log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.SimpleLayout

log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.File=e:/ch19.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%c]-[%-5p] %m%n%n

log4j --------------------编程问答-------------------- 配置一下输出级别,可能没有错误,就没有输出了。 --------------------编程问答-------------------- 有错误输出的。在Console上我都能看到ERROR信息的。

引用 1 楼 fangmingshijie 的回复:
配置一下输出级别,可能没有错误,就没有输出了。
--------------------编程问答-------------------- log4j.rootLogger=INFO,conApp,errorLog,infoLog
#error log
log4j.appender.errorLog=org.apache.log4j.DailyRollingFileAppender
log4j.appender.errorLog.Threshold=ERROR
log4j.appender.errorLog.File=e:/log4e.log
log4j.appender.errorLog.layout=org.apache.log4j.PatternLayout
log4j.appender.errorLog.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c - %m%n
#end of error log
这样配置 --------------------编程问答-------------------- 多谢你的建议!

原先的properties文件是这样的:
log4j.rootLogger=ERROR,console
log4j.logger.testLogger=,file

修改成如下就可以在文件中显示错误信息啦
log4j.rootLogger=ERROR,console,file

还是不知道之前的那种用testLogger来产生file appender的方式为什么不行,我是参照孙鑫Java Web开发那本书写的。
会不会是因为rootLogger和testLogger的级别不同导致的?求高手不吝赐教!

引用 3 楼 oZhiMing12 的回复:
log4j.rootLogger=INFO,conApp,errorLog,infoLog
#error log
log4j.appender.errorLog=org.apache.log4j.DailyRollingFileAppender
log4j.appender.errorLog.Threshold=ERROR
log4j.appender.error……
--------------------编程问答-------------------- log4j.rootLogger=ERROR,console
log4j.logger.testLogger=,file
第一段有问题,根日志没有指定file,也就是

log4j.rootLogger=ERROR,console,file

这样就OK了 --------------------编程问答-------------------- 其实我的原意是想用testLogger日志指定file,而不是用rootLogger来指定。
testLogger是继承rootLogger的,它也是可以指定file为appender的吧?

引用 5 楼 oZhiMing12 的回复:
log4j.rootLogger=ERROR,console
log4j.logger.testLogger=,file
第一段有问题,根日志没有指定file,也就是

log4j.rootLogger=ERROR,console,file

这样就OK了
--------------------编程问答-------------------- log4j.logger.org这么使用,表明你使用的log4j的源程序来自log4j包(org.logger.log4j)。
补充:Java ,  Web 开发
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,