最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

前言

先說(shuō)下樓主的使用場(chǎng)景吧,將程序的某些方法調(diào)用以json格式的內(nèi)容記錄到文件中,提供給大數(shù)據(jù)做數(shù)據(jù)分析用。當(dāng)然這個(gè)需求實(shí)現(xiàn)起來(lái)很簡(jiǎn)單,通過(guò)aop攔截切面統(tǒng)一輸出內(nèi)容到文件即可。下面要介紹的就是通過(guò)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é)點(diǎn)

<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配置說(shuō)明:

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

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

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

配置logger節(jié)點(diǎn)

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

logger配置說(shuō)明:

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

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

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

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

相關(guān)文章

  • mybatis 使用jdbc.properties文件設(shè)置不起作用的解決方法

    mybatis 使用jdbc.properties文件設(shè)置不起作用的解決方法

    這篇文章主要介紹了mybatis 使用jdbc.properties文件設(shè)置不起作用的解決方法,需要的朋友可以參考下
    2018-03-03
  • Spring Task定時(shí)任務(wù)使用

    Spring Task定時(shí)任務(wù)使用

    這篇文章主要介紹了Spring Task定時(shí)任務(wù)使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • 精通Java泛型的使用與原理

    精通Java泛型的使用與原理

    針對(duì)利用繼承來(lái)實(shí)現(xiàn)通用程序設(shè)計(jì)所產(chǎn)生的問(wèn)題,泛型提供了更好的解決方案,本文詳細(xì)的介紹了Java泛型的使用與原理,感興趣的可以了解一下
    2022-03-03
  • springboot配置允許跨域訪問(wèn)代碼實(shí)例

    springboot配置允許跨域訪問(wèn)代碼實(shí)例

    這篇文章主要介紹了springboot配置允許跨域訪問(wèn)代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-09-09
  • Spring Boot加載配置文件的完整步驟

    Spring Boot加載配置文件的完整步驟

    這篇文章主要給大家介紹了關(guān)于Spring Boot加載配置文件的完整步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者使用Spring Boot具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • springboot+mybaties項(xiàng)目中掃描不到@mapper注解的解決方法

    springboot+mybaties項(xiàng)目中掃描不到@mapper注解的解決方法

    本文主要介紹了springboot+mybaties項(xiàng)目中掃描不到@mapper注解的解決方法,該報(bào)錯(cuò)表明掃描不到Mapper層,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-05-05
  • SpringBoot使用CommandLineRunner接口完成資源初始化方式

    SpringBoot使用CommandLineRunner接口完成資源初始化方式

    這篇文章主要介紹了SpringBoot使用CommandLineRunner接口完成資源初始化方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • Java中的final關(guān)鍵字詳細(xì)介紹

    Java中的final關(guān)鍵字詳細(xì)介紹

    這篇文章主要介紹了Java中的final關(guān)鍵字,有需要的朋友可以參考一下
    2014-01-01
  • Spring注解中@Autowired和@Bean的區(qū)別詳解

    Spring注解中@Autowired和@Bean的區(qū)別詳解

    這篇文章主要詳細(xì)介紹了Spring注解中@Autowired和@Bean二者有什么區(qū)別,文中通過(guò)兩個(gè)注解的使用場(chǎng)景介紹了二者的區(qū)別,感興趣的同學(xué)可以參考閱讀
    2023-06-06
  • Java使用Knife4j優(yōu)化Swagger接口文檔的操作步驟

    Java使用Knife4j優(yōu)化Swagger接口文檔的操作步驟

    在現(xiàn)代微服務(wù)開發(fā)中,接口文檔的質(zhì)量直接影響了前后端協(xié)作效率,Swagger 作為一個(gè)主流的接口文檔工具,雖然功能強(qiáng)大,但其默認(rèn)界面和部分功能在實(shí)際使用中略顯不足,而 Knife4j 的出現(xiàn)為我們提供了一種增強(qiáng)的選擇,本篇文章將詳細(xì)介紹如何在項(xiàng)目中集成和使用 Knife4j
    2024-12-12

最新評(píng)論

南安市| 静宁县| 宁国市| 沂源县| 新乡县| 怀宁县| 昌平区| 齐河县| 抚州市| 鄂温| 太保市| 灵川县| 辉南县| 鄂温| 西平县| 河南省| 阜宁县| 内黄县| 太谷县| 井冈山市| 庆阳市| 金昌市| 齐河县| 象州县| 哈巴河县| 吐鲁番市| 常山县| 金华市| 镇平县| 通榆县| 中宁县| 洛隆县| 故城县| 周至县| 万源市| 邛崃市| 凤山县| 镇原县| 庆云县| 邳州市| 汉阴县|