app4 log4j отправляет мои сообщения только на стандартный вывод, но не удаленный GELF-приложение - PullRequest
0 голосов
/ 07 декабря 2018

У меня странная проблема, когда log4j правильно отображает все мои сообщения журнала на консоли, но отправляет только сообщения журнала на мой сервер серого журнала, который я не пишу (например, библиотека, которую я использую, которая пишет в 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");

1 Ответ

0 голосов
/ 07 декабря 2018

Редактировать: Вы указываете, что регистраторы пакета com.test должны писать только в приложение stdout.

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

Вы должны изменить его на:

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

Убедитесь, что у вас запущено приложение с соответствующим профилем для вашего приложения-помощника.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...