如何使log4j的写入控制台以及 [英] how to make log4j to write to the console as well

查看:153
本文介绍了如何使log4j的写入控制台以及的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有没有办法告诉log4j的其日志写入文件,并到控制台?
谢谢
有我的属性:

  log4j.rootLogger = DEBUG,控制台,R
log4j.rootLogger = INFO,FILElog4j.appender.CONSOLE = org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.Target = System.out的
log4j.appender.CONSOLE.layout = org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.conversionPattern =%d个{YYYY-MM-DD HH:MM:SS,SSS}%-5p - %M%Nlog4j.appender.FILE = org.apache.log4j.RollingFileAppender进行
log4j.appender.FILE.File = log4j.log
log4j.appender.FILE.MaxFileSize = 512KB
log4j.appender.FILE.MaxBackupIndex = 3
log4j.appender.FILE.layout = org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.conversionPattern =%d个{YYYY-MM-DD HH:MM:SS,SSS}%-5p - %M%N


解决方案

您根记录器定义有点混乱。
请参阅 log4j文档

这是一个标准的Java属性文件,这意味着行作为键值对治疗。你的第二个 log4j.rootLogger 线覆盖第一,这也解释了在为什么你没有看到任何控制台追加程序

您需要将两个 rootLogger 定义合并成一个。它看起来像你想拥有的 DEBUG 邮件转到控制台和信息消息文件。根记录器只能的有一个的水平,所以你需要改变你的配置,以便附加目的地有适当水平。

虽然我还没有证实这是正确的,我猜想它会是这个样子:

  log4j.rootLogger = DEBUG,控制台,文件
log4j.appender.console = org.apache.log4j.ConsoleAppender
log4j.appender.file = org.apache.log4j.RollingFileAppender进行

请注意,您也可以在壳体内的错误 - 你有控制台小写在一个地方,在另一个CAPS

Is there any way to tell to log4j to write its log to the file and to the console? thanks there are my properties:

log4j.rootLogger=DEBUG,console,R
log4j.rootLogger=INFO, FILE

log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.Target=System.out
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.conversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p - %m%n

log4j.appender.FILE=org.apache.log4j.RollingFileAppender
log4j.appender.FILE.File=log4j.log
log4j.appender.FILE.MaxFileSize=512KB
log4j.appender.FILE.MaxBackupIndex=3
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.conversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p - %m%n

解决方案

Your root logger definition is a bit confused. See the log4j documentation.

This is a standard Java properties file, which means that lines are treated as key=value pairs. Your second log4j.rootLogger line is overwriting the first, which explains why you aren't seeing anything on the console appender.

You need to merge your two rootLogger definitions into one. It looks like you're trying to have DEBUG messages go to the console and INFO messages to the file. The root logger can only have one level, so you need to change your configuration so that the appenders have appropriate levels.

While I haven't verified that this is correct, I'd guess it'll look something like this:

log4j.rootLogger=DEBUG,console,file
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.file=org.apache.log4j.RollingFileAppender

Note that you also have an error in casing - you have console lowercase in one place and in CAPS in another.

这篇关于如何使log4j的写入控制台以及的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆