java - 如何仅定义 Log4j2 appender 日志记录特定的命名记录器?

标签 java logging log4j log4j2

private static final Logger log = LogManager.getLogger(ABC.class); private static final Logger resultLog = LogManager.getLogger("ResultLog");

我们如何定义一个只记录特定于“ResultLog”记录器的附加程序?

我当前的 Log4j2.xml 文件如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="warn" name="ABC" packages="">
    <Appenders>
        <RollingFile name="RollingFile" fileName="logs/ABC.log"
                     filePattern="logs/$${date:yyyy-MM}/ABC-%d{MM-dd-yyyy}-%i.log.gz">
            <PatternLayout>
                <Pattern>%d [%t] %p %c{1.} %m%n</Pattern>
            </PatternLayout>
            <Policies>
                <TimeBasedTriggeringPolicy/>
                <SizeBasedTriggeringPolicy size="250 MB"/>
            </Policies>
        </RollingFile>
        <File name="resultFile" fileName="logs/result.log">
            <PatternLayout pattern="%m%n"/>
        </File>
        <Console name="Console" target="SYSTEM_OUT">
            <PatternLayout pattern="%d [%t] %p %c{1.} %m%n"/>
        </Console>
    </Appenders>

    <Loggers>
        <Root level="debug">
            <AppenderRef ref="RollingFile"/>
            <AppenderRef ref="Console"/>
            <AppenderRef ref="resultFile"/>
        </Root>
    </Loggers>
</Configuration>

谢谢

最佳答案

添加

<Logger name="ResultLog">
  <AppenderRef ...>
</Logger>

到 Loggers 标签。

您可以引用这个手册:https://logging.apache.org/log4j/2.x/manual/configuration.html#XML

关于java - 如何仅定义 Log4j2 appender 日志记录特定的命名记录器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40255753/

相关文章:

java - Aerospike 集群中多个集合(表)的多次操作

tomcat - Log4J Tomcat Web 应用程序属性文件位置

php - 查询密集型网站中的查询日志记录场景

java - slf4j没用吗?

java - 如何在带有变量的 PreparedStatement 中使用 SQL 通配符

java - 关于Java定位

java - Java:光线追踪:光面反射着色

spring-boot - Spring Boot应用-如何打印Json格式的日志

java - 如何禁用 Spring 记录器?

android - Proguard - 找不到任何父类(super class)