log4j appender 只将我的消息发送到 stdout,而不是远程 GELF appender

log4j appender only sending my messages to stdout, but not remote GELF appender

我遇到了一个奇怪的问题,log4j 在控制台上正确显示了我所有的日志消息,但只将日志消息发送到我没有写的 graylog 服务器(例如,我正在使用的库写入log.info 会出现在 graylog 中,但不会出现我用 log.info 写的任何消息。我错过了什么

这是我的 logback-spring.xml

<configuration>
    <contextName>test</contextName>
    <jmxConfigurator/>

    <springProfile name="dev, test">
        <appender name="gelf" class="biz.paluch.logging.gelf.logback.GelfLogbackAppender">
            <host>udp:localhost</host>
            <port>5555</port>
            <version>1.1</version>
            <extractStackTrace>true</extractStackTrace>
            <filterStackTrace>true</filterStackTrace>
            <mdcProfiling>true</mdcProfiling>
            <timestampPattern>yyyy-MM-dd HH:mm:ss,SSS</timestampPattern>
            <maximumMessageSize>8192</maximumMessageSize>

            <includeFullMdc>true</includeFullMdc>
            <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
                <level>INFO</level>
            </filter>
        </appender>
    </springProfile>

    <appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
        <layout class="ch.qos.logback.classic.PatternLayout">
            <Pattern>
                %d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n
            </Pattern>
        </layout>
    </appender>

    <logger name="com.test" level="info" additivity="false">
        <appender-ref ref="stdout" />
    </logger>

    <root level="INFO">
        <appender-ref ref="gelf" />
        <appender-ref ref="stdout" />
    </root>

</configuration>

我正在通过以下方式实例化我的日志:

 private static final Logger logger = LogManager.getLogger(MyClass.class);

并写入我的日志:

 logger.info("WHY CAN'T I SEE THIS IN MY GRAYLOG SERVER");

编辑: 您正在指定包 com.test 的记录器只应写入 stdout appender。

<logger name="com.test" level="info" additivity="false">
   <appender-ref ref="stdout" />
</logger>

您应该将其更改为:

<logger name="com.test" level="info" />

确保您的应用 运行 具有与 gelf appender 匹配的配置文件。