欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

logback自定義json日志輸出示例詳解

 更新時間:2022年03月01日 10:48:42   作者:kl  
這篇文章主要為大家介紹了logback自定義json日志輸出,就是通過logback日志體系以及l(fā)ogstash提供的json?log依賴將數(shù)據(jù)以json格式記錄到日志文件的例子

前言

先說下樓主的使用場景吧,將程序的某些方法調(diào)用以json格式的內(nèi)容記錄到文件中,提供給大數(shù)據(jù)做數(shù)據(jù)分析用。當(dāng)然這個需求實現(xiàn)起來很簡單,通過aop攔截切面統(tǒng)一輸出內(nèi)容到文件即可。下面要介紹的就是通過logback日志體系以及l(fā)ogstash提供的json log依賴將數(shù)據(jù)以json格式記錄到日志文件的例子。

依賴的jar

logstash-logback-encoder : https://github.com/logfellow/logstash-logback-encoder

maven坐標(biāo)

<dependency>
    <groupId>net.logstash.logback</groupId>
    <artifactId>logstash-logback-encoder</artifactId>
    <version>5.2</version>
</dependency>

配置Appender節(jié)點

<appender name="jsonLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <File>${logging.path}/customerBuriedPoint.log</File>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${logging.path}/customerBuriedPoint.%d{yyyy-MM-dd}.log</fileNamePattern>
        </rollingPolicy>
        <encoder class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
            <jsonFactoryDecorator class="net.logstash.logback.decorate.CharacterEscapesJsonFactoryDecorator">
                <escape>
                    <targetCharacterCode>10</targetCharacterCode>
                    <escapeSequence>\u2028</escapeSequence>
                </escape>
            </jsonFactoryDecorator>
            <providers>
                <pattern>
                    <pattern>
                        {
                        "timestamp":"%date{ISO8601}",
                        "userId":"%mdc{userId}",
                        "requestIp":"%mdc{requestIp}",
                        "event":"%mdc{event}"
                        }
                    </pattern>
                </pattern>
            </providers>
        </encoder>
    </appender>

appender配置說明:

encoder:其他的所有配置logback該怎么配置就怎么配置,重點是logstash提供的LoggingEventCompositeJsonEncoder,一個json格式的編碼器。

jsonFactoryDecorator:解決中文轉(zhuǎn)碼的問題,不加這個的話中文會被編碼成ASCII碼輸出

providers:json格式提供者,想要什么字段的json就定義什么,logevent中的類型都可以在這里直接定義輸出,比如,timestamp,message,thread_name等,其他的自定義的字段的值可以通過MDC設(shè)置進來,格式就是%mdc{xx},其中xx就是你日志上下文MDC中設(shè)置的值,比如MDC.put("requestIp",requestIp);

配置logger節(jié)點

<logger name="buriedPoint" level="info" additivity="false">
        <appender-ref ref="jsonLog"/>
    </logger>

logger配置說明:

這里定義了name為buriedPoint的logger節(jié)點,那么日志系統(tǒng)中,只會輸出定義為buriedPoint的日志,比如:

Logger logger = LoggerFactory.getLogger("buriedPoint");

最終實現(xiàn)的效果如下圖所示:

以上就是logback自定義json日志輸出示例詳解的詳細內(nèi)容,更多關(guān)于logback自定義json日志輸出的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評論