Mam dziwny problem, w którym log4j poprawnie wyświetla wszystkie moje komunikaty dziennika w konsoli, ale wysyła tylko komunikaty dziennika do mojego serwera graylog, których nie piszę (np. Biblioteka, której używam, która zapisuje do log.info pojawi się w graylogu, ale nie w żadnej wiadomości, którą piszę za pomocą log.info). Czego mi brakuje

Oto mój 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>

Tworzę wystąpienie mojego dziennika, wykonując:

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

I pisząc do mojego dziennika:

 logger.info("WHY CAN'T I SEE THIS IN MY GRAYLOG SERVER");
1
J_Stan 7 grudzień 2018, 22:55

1 odpowiedź

Najlepsza odpowiedź

Edytuj: Określasz, że rejestratory pakietu com.test powinny pisać tylko do dodatku stdout.

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

Powinieneś to zmienić na:

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

Upewnij się, że używasz aplikacji z profilem pasującym do Twojego appendera gelf.

1
Soufiane Sakhi 8 grudzień 2018, 00:29