Springboot 发送日志到流利的不工作

Springboot sending logs to fluentd not working

我需要一些帮助来解决以下问题。

我有一个 spring boot 应用程序,我想使用 logback.

配置一个 fluentd appender

我在 src/main/resources 中创建了一个名为 logback.xml 的文件,其中包含以下内容:

<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="true">


    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%date - %level - [%thread] - %logger - [%file:%line] - %msg%n</pattern>
        </encoder>
    </appender>

    <appender name="FLUENT_TEXT" class="ch.qos.logback.more.appenders.DataFluentAppender">
        <tag>dab</tag>
        <label>normal</label>
        <remoteHost>localhost</remoteHost>
        <port>24224</port>
        <maxQueueSize>20</maxQueueSize>
    </appender>

    <logger name="org.com" level="DEBUG"/>


    <root level="DEBUG">
        <appender-ref ref="STDOUT" />
        <appender-ref ref="FLUENT_TEXT" />
    </root>

</configuration>

在我的 build.gradle 我有 :

compile 'org.fluentd:fluent-logger:0.3.1'
compile 'com.sndyuk:logback-more-appenders:1.1.0'

当我使用 gradle bootRun 启动应用程序时,我收到以下消息:

10:56:33,020 |-WARN in ch.qos.logback.core.ConsoleAppender[STDOUT] - Attempted to append to non started appender [STDOUT].
10:56:33,020 |-WARN in ch.qos.logback.more.appenders.DataFluentAppender[FLUENT_TEXT] - Attempted to append to non started appender [FLUENT_TEXT].
10:56:33,028 |-WARN in ch.qos.logback.core.ConsoleAppender[STDOUT] - Attempted to append to non started appender [STDOUT].
Exception in thread "main" 10:56:33,028 |-WARN in ch.qos.logback.more.appenders.DataFluentAppender[FLUENT_TEXT] - Attempted to append to non started appender [FLUENT_TEXT].
java.lang.NullPointerException
        at ch.qos.logback.more.appenders.DataFluentAppender$FluentDaemonAppender.close(DataFluentAppender.java:72)

我在这里 https://github.com/spring-projects/spring-boot/blob/master/spring-boot-docs/src/main/asciidoc/spring-boot-features.adoc 发现 logback.xml 加载得太早,所以我需要使用名为 logback-spring.xml.

的文件

我已经做到了,就像文件从未加载过一样,没有错误,但我的 fluetd 套接字没有任何内容。

知道如何解决吗?

谢谢。 C.C.

当运行你的springboot应用时,加载一个'spring'配置文件。

一种方法是通过命令行,见下文。

-Dspring.profiles.active=spring