Java log4j2配置
有人可以告诉我如何更改log4j2.xml以添加1个日志文件:一级跟踪和一级信息Java log4j2配置,java,logging,configuration,log4j,log4j2,Java,Logging,Configuration,Log4j,Log4j2,有人可以告诉我如何更改log4j2.xml以添加1个日志文件:一级跟踪和一级信息 <?xml version="1.0" encoding="UTF-8"?> <configuration status="debug"> <appenders> <Console name="CONSOLE" target="SYSTEM_OUT"> <PatternLayout pattern="%d %-5p
<?xml version="1.0" encoding="UTF-8"?>
<configuration status="debug">
<appenders>
<Console name="CONSOLE" target="SYSTEM_OUT">
<PatternLayout pattern="%d %-5p %C{2} (%F:%L) - %m%n" />
</Console>
<File name="DEBUG_FILE" fileName="debug.txt">
<PatternLayout pattern="%d %-5p %C{2} (%F:%L) - %m%n" />
</File>
</appenders>
<loggers>
<root level="debug">
<appender-ref ref="CONSOLE" />
<appender-ref ref="DEBUG_FILE" />
</root>
</loggers>
</configuration>
您可以设置根记录器跟踪级别(所有消息),并在控制台上放置一个阈值过滤器,以便控制台上只显示一些消息 此配置只将错误消息记录到控制台,同时将所有消息(跟踪、调试、信息、错误…)记录到DEBUG.txt文件。控制台和文件中都会记录错误和更高级别的消息:
<?xml version="1.0" encoding="UTF-8"?>
<configuration status="ERROR">
<appenders>
<Console name="CONSOLE" target="SYSTEM_OUT">
<ThresholdFilter level="ERROR" onMatch="ACCEPT" onMismatch="DENY"/>
<PatternLayout pattern="%d %-5p %C{2} (%F:%L) - %m%n" />
</Console>
<File name="DEBUG_FILE" fileName="debug.txt">
<PatternLayout pattern="%d %-5p %C{2} (%F:%L) - %m%n" />
</File>
</appenders>
<loggers>
<root level="trace">
<appender-ref ref="CONSOLE" />
<appender-ref ref="DEBUG_FILE" />
</root>
</loggers>
</configuration>
顺便说一句,请注意您的模式布局包含需要位置信息的转换模式(%C、%F和%L,确切地说)。
这意味着对于每个日志消息,log4j2都需要获取堆栈的快照,然后遍历堆栈跟踪以找到执行日志记录的类和方法
这是非常非常慢的
同步日志记录的速度将慢2-5倍,异步日志记录的速度将慢4-20倍
如果性能不是一个问题,那么它并不重要,但它肯定是需要注意的。就我个人而言,我只使用了%c(记录器名称),我的应用程序的日志消息足够独特,我可以快速找到消息的来源。只要我的2美分
---更新2013-04-27---
我学会了一种更简单的方法:可以在appender-ref上设置一个级别
<?xml version="1.0" encoding="UTF-8"?>
<configuration status="debug">
<appenders>
<Console name="CONSOLE" target="SYSTEM_OUT">
<PatternLayout pattern="%d %-5p %c{2} - %m%n" /> <!--without location-->
</Console>
<File name="DEBUG_FILE" fileName="debug.txt">
<PatternLayout pattern="%d %-5p %c{2} - %m%n" />
</File>
</appenders>
<loggers>
<root level="debug">
<appender-ref ref="CONSOLE" level="ERROR" />
<appender-ref ref="DEBUG_FILE" />
</root>
</loggers>
</configuration>
您更新的conf文件对我来说不起作用,但原来的文件就可以了。谢谢