Apache Log4j2 使用 log4j2 打包特定日志记录.xml

2022-09-02 10:20:00

我正在使用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>


答案 1

刚刚回答了这个问题。

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" />


答案 2

来自 Log4J 手册

为类添加特定的记录器:(您也可以在此处参考包)

<Logger name="org.apache.logging.log4j.test2" level="debug" additivity="false">
  <AppenderRef ref="File"/>
</Logger>

添加特定的追加器:

<Appender type="File" name="File" fileName="${filename}">
  <Layout type="PatternLayout">
    <Pattern>%d %p %C{1.} [%t] %m%n</Pattern>
  </Layout>
</Appender>

推荐