当前位置: 首页 > 知识库问答 >
问题:

log4j2无法创建信息级别日志

习哲彦
2023-03-14

我的spring boot应用程序中有Log4j2,我希望将事件记录到2个日志文件中。用户服务无法创建信息级别的日志,但可以创建警告级别的日志。有人能指点一下吗?

Log4j2.xml

<Configuration>
    <Appenders>
        <RollingFile name="matchFile"
            fileName="${log-path}/match.log"
            immediateFlush="true">
            <Filters>
                <ThresholdFilter level="trace" onMAtch="deny" onMismatch="neutral" />
                <ThresholdFilter level="debug" onMAtch="deny" onMismatch="neutral" />
                <ThresholdFilter level="info" onMAtch="accept" onMismatch="deny" />
                <ThresholdFilter level="warn" onMAtch="deny" onMismatch="neutral" />
                <ThresholdFilter level="error" onMAtch="deny" onMismatch="neutral" />
                <ThresholdFilter level="fatal" onMAtch="deny" onMismatch="neutral" />
            </Filters>
        </RollingFile>
        <RollingFile name="confirmFile"
            fileName="${log-path}/confirm.log"
            immediateFlush="true">
            <Filters>
                <ThresholdFilter level="trace" onMAtch="deny" onMismatch="neutral" />
                <ThresholdFilter level="debug" onMAtch="deny" onMismatch="neutral" />
                <ThresholdFilter level="info" onMAtch="deny" onMismatch="neutral" />
                <ThresholdFilter level="warn" onMAtch="accept" onMismatch="deny" />
                <ThresholdFilter level="error" onMAtch="deny" onMismatch="neutral" />
                <ThresholdFilter level="fatal" onMAtch="deny" onMismatch="neutral" />
            </Filters>
        </RollingFile>
    </Appenders>
</Configuration>

UserService.java

public class UserService{
    Logger matchLogger = LogManager.getLogger("matchFile");
    Logger confirmLogger = LogManager.getLogger("confirmFile");
    
    public void log(){
        matchLogger.info("print info"); //not able to log this message
        confirmLogger.warn("print warn"); //able to log this message
    }
}

共有1个答案

印宏阔
2023-03-14

你漏掉了<代码>

您的配置应如下所示:

<Configuration>
    <Appenders>
        <RollingFile name="matchFile"
            fileName="${log-pathmatchFile}/match.log"
            immediateFlush="true">
            <Filters>
                <!-- deny warn, error and fatal messages -->
                <ThresholdFilter level="warn" onMatch="deny" onMismatch="neutral" />
                <!-- accept info, warn, error, fatal and deny debug, trace -->
                <ThresholdFilter level="info" onMatch="accept" onMismatch="deny" />
            </Filters>
        </RollingFile>
        <RollingFile name="confirmFile"
            fileName="${log-path}/confirm.log"
            immediateFlush="true">
            <Filters>
                <!-- deny error and fatal messages -->
                <ThresholdFilter level="error" onMatch="deny" onMismatch="neutral" />
                <!-- accept warn, error, fatal and deny info, debug, trace -->
                <ThresholdFilter level="warn" onMatch="accept" onMismatch="deny" />
            </Filters>
        </RollingFile>
    </Appenders>
    
    <Loggers>
        <!-- probably declare the root logger level and appenders:
            <Root level="...">
                <AppenderRef ref="..." />
            </Root>
        -->
        <Logger name="matchFile" level="info">
            <AppenderRef ref="matchFile" />
        </Logger>
        <Logger name="confirmFile" level="warn">
            <AppenderRef ref="confirmFile" />
        </Logger>
    </Loggers>
</Configuration>
 类似资料:
  • 如何只打印信息级别? 我当前的日志正在将所有信息、警告、错误和致命级别打印到控制台——我知道为什么会这样。(因为它们都在信息之上) 有没有一种方法可以指定只将信息级别发送到控制台appender,而不是它上面的所有内容? 目前有以下log4j2 xml:

  • 我有log4j2.xml,它部分配置为: 但是,跟踪消息并不存在于两个文件附加符(fileinfo/filedebug)中。当我更改FileDebug log level=“TRACE”时,就会出现跟踪消息。

  • 我已经将ApacheJena库包含到我的Java项目中,并且我正在使用ApacheLog4J2作为我的记录器。我还包括了用于从log4jv1映射的log4j-1.2-api和log4j-slf4j-impl依赖项。x和SLF4J(分别) 但是,我无法更改Jena的日志记录级别 我尝试在log4j2中设置它。xml(我在项目中使用的内容): 我甚至尝试添加一个log4j。属性文件: 没有成功 是否有

  • 我在spring应用程序中使用log4j2作为我的日志工具。我想为特定的库/包设置不同于根目录的日志级别。例如,我希望< code>org.springframework为INFO,而< code>com.google为WARN。我在< code>log4j2.properties中找到了这个: 我不明白是什么意思?我一直在log4j2文档中找到它,但没有解释那是什么或意味着什么。 如何为特定包添

  • 我有将日志保存到文件配置,但日志会附加到现有内容。我想创建总是新的文件。我怎么能那样做? 我的log4j2.xml:

  • 通过CloudFormation生成的CodeBuild服务的角色如下 怎么了 为什么CodeBuild不能写日志? 服务角色arn:AWS:iam::598xxx:role/Skynet-Codebuild不允许AWS CodeBuild为构建创建Amazon CloudWatch日志日志流arn:AWS:CodeBuild:ap-southeast-1:598xxx:build/Skynet-