【问题标题】:Log4j2: no log4j-web module availableLog4j2:没有可用的 log4j-web 模块
【发布时间】:2016-09-09 21:37:01
【问题描述】:

我正在尝试将我的配置的状态级别设置为“信息”,但我得到以下输出:

INFO Log4j appears to be running in a Servlet environment, but there's no log4j-web module available. If you want better web container support, please add the log4j-web JAR to your web archive or server lib directory.

我的 log4j2.xml 有以下内容

    <?xml version="1.0" encoding="UTF-8"?>
<Configuration status="info" packages="org.graylog2.log4j2">
    <Properties>
        <Property name="default_pattern">%d{MM/dd/yyyy hh:mm:ss} %5p %c{1} - %m%n</Property>
    </Properties>

    <!--  LOG4J2 APPENDERS -->
    <Appenders>
        <Console name="console" target="SYSTEM_OUT">
            <PatternLayout pattern="${default_pattern}"/>
        </Console>
        <Console name="com.sum.exam" target="SYSTEM_OUT">
            <PatternLayout pattern="${default_pattern}"/>                            
        </Console>
        <Console name="auth" target="SYSTEM_OUT">
            <PatternLayout pattern="${default_pattern}"/>                            
        </Console>
        <Console name="com.d.e" target="SYSTEM_OUT">
            <PatternLayout pattern="${default_pattern}"/>                            
        </Console>
        <Console name="com.google.gson" target="SYSTEM_OUT">
            <PatternLayout pattern="${default_pattern}"/>                            
        </Console>
        <Console name="org.elasticsearch" target="SYSTEM_OUT">
            <PatternLayout pattern="${default_pattern}"/>                            
        </Console>
        <Console name="com.datamotion.direct" target="SYSTEM_OUT">
            <PatternLayout pattern="${default_pattern}"/>                            
        </Console>
        <NullAppender name="null">
            <PatternLayout pattern="${default_pattern}"/> 
        </NullAppender>

        <!-- GELFJ CONFIGURATION -->
        <GELF   name="gelfAppender" 
                server="org.graylog2.log.GelfAppender" 
                port="12201"
                hostName="logs.x.d.com" 
                facility="GELF-JAVA"
                additionalFields="{'\u2018environment\u2019\': '\u2018EHR\u2019'}"
                extractStacktrace="true"
                addExtendedInformation="true">
            <PatternLayout pattern="${default_pattern}"/>
            <Root level="info">
                <AppenderRef ref="gelfAppender" level="info"/>
            </Root>
        </GELF>
    </Appenders>

    <!-- LOG4J2 CONFIGURATION -->
    <Loggers>
        <Root level="error" additivity="false" />

        <Logger name="console" level="info">
            <AppenderRef ref="console" />
        </Logger>
        <Logger name="com.sum.exam" level="debug" additivity="false">
            <AppenderRef ref="com.sum.exam" />
        </Logger>
        <Logger name="auth" level="debug" additivity="false">
            <AppenderRef ref="auth" />
        </Logger>
        <Logger name="com.d.e" level="debug" additivity="false">
            <AppenderRef ref="com.d.e" />
        </Logger>
        <Logger name="com.google.gson" level="info">
            <AppenderRef ref="com.google.gson" />
        </Logger>
        <Logger name="org.elasticsearch" level="info">
            <AppenderRef ref="org.elasticsearch" />
        </Logger>
        <Logger name="com.datamotion.direct" level="debug" additivity="false">
            <AppenderRef ref="com.datamotion.direct" />
        </Logger>
    </Loggers>

</Configuration>

我已经下载了log4j-web-2.6.2.jar 文件并将其添加到我的类路径中,但由于某种原因我仍然得到相同的输出。我可能做错了什么?我能够输出 DEBUG 状态级别,但不能输出奇怪的 INFO。

【问题讨论】:

  • 请出示您的完整配置。

标签: java log4j log4j2


【解决方案1】:

起初,我认为问题是因为我的类路径中有我需要的 servlet-api jar,但删除它并没有解决问题,对我来说。最后,我只需将mvnrepository 中的log4 web jar 文件添加到您的类路径中即可!

【讨论】:

    【解决方案2】:

    配置文件开头的status="info" 用于内部log4j2 调试消息。如果将其设置为跟踪,您将看到有关如何配置 log4j2 的详细信息。

    不过,这与您的应用程序日志记录无关。您说您能够输出调试消息,我认为这意味着日志记录本身按预期工作 (如果那里有问题,请显示您的完整配置。)

    【讨论】:

    • 太好了,我删除了 status="info",消息就消失了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-10
    • 2016-09-15
    相关资源
    最近更新 更多