结构化日志-logstashencoder不从子线程写入日志

s3fp2yjn  于 2021-06-30  发布在  Java
关注(0)|答案(0)|浏览(182)

我已经使用logstash logstashencoder实现了一个jsonsole appender。logback xml中的xml如下:
它将日志写入控制台。但是,我看不到来自子线程的日志。我想知道我错过了什么,需要包括所有的日志 jsonConsoleAppender .
这个 STDOUT appender将写入所有日志,包括子线程日志。

<configuration>

    //props

    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <charset>UTF-8</charset>
            <pattern>${pattern}</pattern>
        </encoder>
    </appender>

    <appender name="jsonConsoleAppender" class="ch.qos.logback.core.ConsoleAppender">
        <encoder class="net.logstash.logback.encoder.LogstashEncoder">
            <fieldNames>
                <timestamp>log_datetime</timestamp>
                <thread>thread</thread>
                <logger>[ignore]</logger>
                <version>[ignore]</version>
                <levelValue>[ignore]</levelValue>
                <callerClass>class_name</callerClass>
                <callerMethod>method_name</callerMethod>
                <callerFile>[ignore]</callerFile>
                <callerLine>line_num</callerLine>
            </fieldNames>
            <timestampPattern>yyyy-MM-dd HH:mm:ss.SSS</timestampPattern>
            <includeCallerData>true</includeCallerData>
            <throwableConverter class="net.logstash.logback.stacktrace.ShortenedThrowableConverter">
                <maxDepthPerThrowable>30</maxDepthPerThrowable>
                <maxLength>2048</maxLength>
                <shortenedClassNameLength>20</shortenedClassNameLength>
                <exclude>sun\.reflect\..*\.invoke.*</exclude>
                <exclude>net\.sf\.cglib\.proxy\.MethodProxy\.invoke</exclude>
                <rootCauseFirst>true</rootCauseFirst>
                <inlineHash>true</inlineHash>
            </throwableConverter>
        </encoder>
    </appender>

    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <fileNamePattern>${LOG_HOME}\mylog.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
            <maxFileSize>200MB</maxFileSize>
        </rollingPolicy>
        <encoder>
            <charset>UTF-8</charset>
            <pattern>${pattern}</pattern>
        </encoder>
    </appender>

    <appender name="ASYNC" class="ch.qos.logback.classic.AsyncAppender">
        <appender-ref ref="FILE"/>
    </appender>

    <logger name="com.example.app" level="INFO" additivity="false">
        <appender-ref ref="ASYNC"/>
    </logger>

    <springProfile name="local">
        <root level="INFO">
            <appender-ref ref="STDOUT"/>
        </root>
    </springProfile>

    <springProfile name="!local">
        <root level="INFO">
            <appender-ref ref="jsonConsoleAppender"/>
        </root>
    </springProfile>

</configuration>

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题