java - 使用 log4j2.xml 的 Apache Log4j2 包特定日志记录

标签 java log4j2

我正在使用 log4j2。但我面临的问题是它记录了所有日志。我想...从特定包记录到特定文件,将其他包记录到另一个文件。我正在使用 log4j2.xml 进行配置。 请问有人可以帮忙吗?

log4j2.xml

<?xml version="1.0" encoding="UTF-8"?>

<Loggers>
    <Root level="DEBUG" additivity="false">
        <AppenderRef level="DEBUG" ref="CONSOLE" />
        <AppenderRef level="DEBUG" ref="fileAppender" />
    </Root>
    <Logger name="com.pkg.test.logging.method" level="DEBUG"
        additivity="false">
        <Appender-ref ref="fileAppender" level="DEBUG" />
    </Logger>

</Loggers>

<Appenders>

    <Console name="CONSOLE" target="SYSTEM_OUT">
        <PatternLayout
            pattern="%highlight{[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} %c{1}: %L - %msg%n%throwable}" />
    </Console>

    <RollingFile name="fileAppender" fileName="./log.log"
        filePattern="./log-%d{yyyy-MM-dd}.log">
        <PatternLayout
            pattern="%highlight{[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} %c{1}: %L - %msg%n}" />
        <Policies>
            <TimeBasedTriggeringPolicy interval="1"
                modulate="true" />
        </Policies>
    </RollingFile>
</Appenders>

最佳答案

刚刚回答了问题。

log4j2.xml

    <?xml version="1.0" encoding="UTF-8"?>
<Loggers>
    <Root level="DEBUG" additivity="false">
        <AppenderRef level="DEBUG" ref="CONSOLE" />
     </Root>
    <Logger name="com.pkg.test.logging.method" level="DEBUG"
        additivity="false">
        <Appender-ref ref="fileAppender" level="DEBUG" />
    </Logger>

</Loggers>

<Appenders>

    <Console name="CONSOLE" target="SYSTEM_OUT">
        <PatternLayout
            pattern="%highlight{[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} %c{1}: %L - %msg%n%throwable}" />
    </Console>

    <RollingFile name="fileAppender" fileName="./log.log"
        filePattern="./log-%d{yyyy-MM-dd}.log">
        <PatternLayout
            pattern="%highlight{[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} %c{1}: %L - %msg%n}" />
        <Policies>
            <TimeBasedTriggeringPolicy interval="1"
                modulate="true" />
        </Policies>
    </RollingFile>
</Appenders>

删除了 <AppenderRef level="DEBUG" ref="fileAppender" />来自根记录器。因此它开始记录基于包的日志。

关于java - 使用 log4j2.xml 的 Apache Log4j2 包特定日志记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38713575/

相关文章:

mysql - GenericObjectPool<PoolableConnection>

java - Log4j2 版本 2.3 中多个 JVM 写入同一日志文件

java - 如何自定义我的 log4j2.xml 参数

java - 如何在Java中初始化HashMap中的Key类

java - Java中如何读写串口通信?

java - 如何从 Eclipse 插件提供 Flash 策略文件?

java - Log4j2 包括堆栈跟踪中的库名称

java - LinkedList 中的 ConcurrentModificationException

java - 使用 Elasticsearch Java API 的记录器警告

java - 异常和记录器中的不同堆栈跟踪格式