Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java log4j2配置_Java_Logging_Configuration_Log4j_Log4j2 - Fatal编程技术网

Java log4j2配置

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

有人可以告诉我如何更改log4j2.xml以添加1个日志文件:一级跟踪和一级信息

<?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文件对我来说不起作用,但原来的文件就可以了。谢谢