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

Log4j 2在错误的级别中登录

萧繁
2023-03-14
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
    <Filters>
        <!-- onMatch="DENY" es wird nicht geloggt, onMatch="ACCEPT" es wird geloggt -->
        <MarkerFilter marker="HTTP_HEADER" onMatch="DENY" onMismatch="NEUTRAL"/>
        <MarkerFilter marker="XML_FILTER" onMatch="DENY" onMismatch="NEUTRAL"/>
        <MarkerFilter marker="FLOW" onMatch="ACCEPT" onMismatch="NEUTRAL"/>
    </Filters>
    <Appenders>
        <Console name="Console" target="SYSTEM_OUT">
            <PatternLayout
                    pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
        </Console>
        <RollingFile name="dmFileAppender" fileName="logs/doorman.log"
                     filePattern="logs/doorman-%i.log">
            <PatternLayout>
                <!--<pattern>%d{HH:mm:ss.SSS} [%t] %X{id} %X{username} %-5level %c{36} %l: %msg%n</pattern>-->
                <pattern>%d{yyyyMMdd-HHmmss} %-5level [%t] %msg%n</pattern>
            </PatternLayout>
            <Policies>
                <SizeBasedTriggeringPolicy size="2 MB"/>
            </Policies>
            <DefaultRolloverStrategy min="1" max="5"/>
        </RollingFile>
    </Appenders>
    <Loggers>
        <Root level="warn">
            <AppenderRef ref="Console"/>
        </Root>
        <Logger name="de.ulrich" level="INFO" additivity="false">
            <AppenderRef ref="dmFileAppender"/>
            <AppenderRef ref="Console" />
        </Logger>

        <Logger name="org.apache.http.impl.conn" level="error">
            <AppenderRef ref="dmFileAppender"/>
            <AppenderRef ref="Console"/>
        </Logger>
        <Logger name="org.apache.http.impl.client" level="error">
            <AppenderRef ref="dmFileAppender"/>
            <AppenderRef ref="Console"/>
        </Logger>
        <Logger name="org.apache.http.client" level="error">
            <AppenderRef ref="dmFileAppender"/>
            <AppenderRef ref="Console"/>
        </Logger>

    </Loggers>
</Configuration>

共有1个答案

归翔
2023-03-14

我将filters元素移动到logger元素内部,现在得到了预期的日志记录输出。

片段:

<Loggers>
    <Root level="warn">
        <AppenderRef ref="Console"/>
    </Root>
    <Logger name="de.lgn" level="${lgnDefaultLogLevel}" additivity="false">
        <AppenderRef ref="dmFileAppender"/>
        <AppenderRef ref="Console" />
        <Filters>
            <!-- onMatch="DENY" es wird nicht geloggt, onMatch="ACCEPT" es wird geloggt -->
            <MarkerFilter marker="HTTP_HEADER" onMatch="DENY" onMismatch="NEUTRAL"/>
            <MarkerFilter marker="XML_FILTER" onMatch="DENY" onMismatch="NEUTRAL"/>
            <MarkerFilter marker="FLOW" onMatch="DENY" onMismatch="NEUTRAL"/>
        </Filters>
    </Logger>
    ...
    ...
</Loggers>

谢谢你。

 类似资料:
  • 我使用的是Log4J2,Jboss 6.4上的2.4版本,我的log4j2.xml放在WEB-INF/classes中。我可以在没有关于log4j配置的错误的情况下部署war,并且可以在RollingFile name=“mylog”中正确地记录日志,但我不能理解的是,为什么在控制台appender中出现“mylog”的信息日志 配置:

  • 这样,来自我的类的日志消息显示正常,但出现并被DispatcherServlet捕获的错误显示在控制台的调试级别: 在standalone.xml中,日志记录部分如下所示: 此外,尽管我的log4j.xml包含以下内容:

  • 在我的log4j2配置中,我将一个AsyncRoot设置为INFO,因为我想在一个文件中记录这个级别和更高的级别。 但我也希望将错误级别记录到特定的文件和在AsyncRoot中配置的appender中 null 谢谢你

  • 我试图让我的日志使用log4j2和yaml工作,一直在挣扎。 这个包是com的。eclipse非常嘈杂,所以我只想在warn或更高级别记录来自该包的消息。对于我的软件包,我希望将调试及以上记录到滚动追加器,并将错误或以上记录到错误日志。在控制台上,我想看到除org之外的所有东西的debug。埃普利斯 使用当前配置,我看不到组织。eclipse调试消息,很好,我看到了com。myorganizati

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

  • 问题内容: 我应该使用哪个过滤器来定义要使用apender记录的特定级别?例如: Java的 log4j2.xml: 文件输出很好,但是在控制台中,我得到了这样的结果: 但是我需要追加程序仅输出INFO消息,而输出所有EXEPT INFO。因此,控制台输出应如下所示: 无法找到如何防止过滤器尊重级别继承的方法。是否有可能做到这一点? 问题答案: 这有效: