问题描述
我正在使用log4j进行日志.
我有一个要打印到控制台的log.info级别的课程,
并打印到某些文件log.info + log.debug级别(同一类).
我尝试设置log4j.xml如下:
<!--appender to parser file--> <appender name="parserFile" class="org.apache.log4j.FileAppender"> <param name="File" value="/var/log/java/parser/parser.log" /> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%d{E MMM dd HH:mm:ss} %c : %m%n" /> </layout> </appender> <!--appender to the stdout--> <appender name="console" class="org.apache.log4j.ConsoleAppender"> <param name="Target" value="System.out"/> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%-5p %c{1} - %m%n"/> </layout> </appender> <logger name="parser.ParserMainJava"> <level value="debug" /> <appender-ref ref="parserFile" /> </logger> <logger name="parser.ParserMainJava"> <level value="info" /> <appender-ref ref="console" /> </logger>
这是我的配置,但我不能使用具有相同包装名称的2个记录器.
有什么建议 ?
谢谢,
或.
推荐答案
只需定义带有调试级别的" parser.parsermainjava"的一个记录器,然后将以下参数添加到您的控制台Appender定义:
<param name="Threshold" value="INFO"/>
其他推荐答案
在我的情况下,我需要调整我的appenderref.将参数元素添加到consoleappender不起作用.该元素内存很好.
<Root level="debug"> <AppenderRef ref="FileAppender" /> <AppenderRef ref="ConsoleAppender" level="info"/> </Root>
问题描述
I'm using log4j for logs.
I have a class that i want to print to the console only log.info level,
And print to some file log.info + log.debug levels (The same class).
I tried to setup the log4j.xml as follows :
<!--appender to parser file--> <appender name="parserFile" class="org.apache.log4j.FileAppender"> <param name="File" value="/var/log/java/parser/parser.log" /> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%d{E MMM dd HH:mm:ss} %c : %m%n" /> </layout> </appender> <!--appender to the stdout--> <appender name="console" class="org.apache.log4j.ConsoleAppender"> <param name="Target" value="System.out"/> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%-5p %c{1} - %m%n"/> </layout> </appender> <logger name="parser.ParserMainJava"> <level value="debug" /> <appender-ref ref="parserFile" /> </logger> <logger name="parser.ParserMainJava"> <level value="info" /> <appender-ref ref="console" /> </logger>
This is my configuration but I can't use 2 loggers with the same package name.
Any suggestions ?
Thanks,
Or.
推荐答案
Just define one logger for "parser.ParserMainJava" with debug level, and add the following parameter to your console appender definition:
<param name="Threshold" value="INFO"/>
其他推荐答案
In my case I needed to adjust my AppenderRef. Adding the param element to the ConsoleAppender did not work. This element inside Loggers is good.
<Root level="debug"> <AppenderRef ref="FileAppender" /> <AppenderRef ref="ConsoleAppender" level="info"/> </Root>