Log4j 2登录错误的级别

时间:2015-06-24 15:20:00

标签: java tomcat logging

我正在使用log4j2版本2.3。

我的Tomcat Webapp中的Logger de.ulrich正在登录DEBUG级别,尽管我配置了级别INFO(见下文)。为什么呢?

<?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>

其他信息
这是log4j2.xml的路径:
.../webapp/myApp/WEB-INF/classes

我确信log4j可以找到此文件,因为它使用了有关RollingFile的所有设置。

1 个答案:

答案 0 :(得分:0)

我在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>

谢谢。