我正在使用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个记录器。
有什么建议 ?
谢谢,
或
答案 0 :(得分:2)
只需为调试级别的“parser.ParserMainJava”定义一个记录器,并将以下参数添加到控制台appender定义中:
<param name="Threshold" value="INFO"/>
答案 1 :(得分:0)
就我而言,我需要调整我的 AppenderRef。将 param 元素添加到 ConsoleAppender 不起作用。 Loggers里面的这个元素很好。
<Root level="debug">
<AppenderRef ref="FileAppender" />
<AppenderRef ref="ConsoleAppender" level="info"/>
</Root>