当前位置: 首页 > 面试题库 >

使用log4j2.xml的Apache Log4j2软件包特定的日志记录

柴华灿
2023-03-14
问题内容

我正在使用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" />从根记录器中删除了。因此,它开始基于包记录日志。



 类似资料:
  • 问题内容: 如何根据包名将log4j设置为登录到其他文件? 例如: 我正在使用属性文件配置格式。目前,它是为服务器设置的,我想不理会它,并添加一些东西来记录我的日志。 属性文件如下所示: 问题答案: 您必须创建两个新的追加程序并相应地设置可加性。 更新:只需检查是否需要添加以下行。 您的常规日志文件在哪里,该日志文件记录除和以外的所有内容。

  • 我尝试配置Log4j2几个小时,但无法解决这个问题。 编辑: 来自的日志:

  • 我试图从log4j1更改为log4j2。我所做的: 已删除旧配置文件log4j。xml 创建了新的配置文件log4j2。xml 创建了jboss部署结构。xml 编辑的pom 环境:野蝇10 1 EAR 4 WAR文件中没有使用web.xml。以前的log4j配置日志在EAR中(仅) Log4j2配置文件 Jboss部署结构 新的maven依赖关系 我之前说过我在SLF4j中使用log4j1。这些

  • 我正在以JAR的形式运行Spring Boot应用程序。 下面是示例log4j2.xml配置文件 Spring boot应用程序正在创建${sys:logs.location}文件夹,而不是正确地从jvm参数解析系统属性。 我正在使用log4j2-spring.xml配置log4j2。 我已经查看了StackOverflow Q。此答案读取properties Bundle。但我想读取sys属性