我正在尝试在同一个log4j2.xml文件中使用Asyn日志和Syn日志,并希望设置根级别为" INFO"并且特定的mule包(org.mule)是" FATAL"。但它会自动选择org.mule包的信息级别,如果我使用sync和asynch级别,它不会将日志级别限制为特定包同一个文件。如果您有任何想法,请帮助我们。提前谢谢。
Mule ESB - 3.6
<?xml version="1.0" encoding="utf-8"?>
<Configuration>
<Appenders>
<RollingFile name="file"
fileName="${sys:mule.home}${sys:file.separator}logs${sys:file.separator}eztutorial.log"
filePattern="${sys:mule.home}${sys:file.separator}logs${sys:file.separator}eztutorial-%i.log">
<PatternLayout pattern="%d [%t] %-5p %c - %m%n" />
<SizeBasedTriggeringPolicy size="10 MB" />
<DefaultRolloverStrategy max="10" />
</RollingFile>
</Appenders>
<Loggers>
<!-- CXF is used heavily by Mule for web services -->
<AsyncLogger name="org.apache.cxf" level="WARN" />
<!-- Apache Commons tend to make a lot of noise which can clutter the log -->
<AsyncLogger name="org.apache" level="WARN" />
<!-- Reduce startup noise -->
<AsyncLogger name="org.springframework.beans.factory"
level="WARN" />
<logger name="org.mule">
<level value="FATAL" />
</logger>
<logger name="com.mulesoft">
<level value="FATAL" />
</logger>
<category name="org.mule">
<priority value="FATAL" />
</category>
<category name="com.mulesoft">
<priority value="FATAL" />
</category>
<!-- Reduce DM verbosity -->
<AsyncLogger name="org.jetel" level="WARN" />
<AsyncLogger name="Tracking" level="WARN" />
<AsyncRoot level="INFO">
<AppenderRef ref="file" />
</AsyncRoot>
</Loggers>
</Configuration>
答案 0 :(得分:0)
您可以从配置中删除<Category ...>
条目。 (Log4j2忽略它们。)
对于所有已命名的<Logger>
和<AsyncLogger>
条目,请添加additivity="false"
。如果没有这个,INFO级别语句仍将出现在您的日志中,因为根记录器会将其选中。
请参阅http://logging.apache.org/log4j/2.x/manual/configuration.html#Additivity