logback日志輸出格式設置方式
部分標簽解釋
withJansi
: 是否配合jansi使用
filter
: 日志過濾器
layout
: 布局, 配合內置模板使用
pattern
: 日志模板, 有內置的日志模板可以直接使用, 例如: ${FILE_LOG_PATTERN}
encoder
: 編碼器, 支付轉碼
charset
: 支付編碼, 一般為utf-8
內置轉換器
可以直接通過調用內置的轉換器將日志取出來, 打印出來
部分特殊字符串解釋
%d
: 表示日期
%thread
: 表示線程名
%-5level
: 級別從左顯示5個字符寬度
%msg
: 日志消息
%n
: 是換行符
更多內置特殊字符
defaultConverterMap.put("d", DateConverter.class.getName()); defaultConverterMap.put("date", DateConverter.class.getName()); defaultConverterMap.put("r", RelativeTimeConverter.class.getName()); defaultConverterMap.put("relative", RelativeTimeConverter.class.getName()); defaultConverterMap.put("level", LevelConverter.class.getName()); defaultConverterMap.put("le", LevelConverter.class.getName()); defaultConverterMap.put("p", LevelConverter.class.getName()); defaultConverterMap.put("t", ThreadConverter.class.getName()); defaultConverterMap.put("thread", ThreadConverter.class.getName()); defaultConverterMap.put("lo", LoggerConverter.class.getName()); defaultConverterMap.put("logger", LoggerConverter.class.getName()); defaultConverterMap.put("c", LoggerConverter.class.getName()); defaultConverterMap.put("m", MessageConverter.class.getName()); defaultConverterMap.put("msg", MessageConverter.class.getName()); defaultConverterMap.put("message", MessageConverter.class.getName()); defaultConverterMap.put("C", ClassOfCallerConverter.class.getName()); defaultConverterMap.put("class", ClassOfCallerConverter.class.getName()); defaultConverterMap.put("M", MethodOfCallerConverter.class.getName()); defaultConverterMap.put("method", MethodOfCallerConverter.class.getName()); defaultConverterMap.put("L", LineOfCallerConverter.class.getName()); defaultConverterMap.put("line", LineOfCallerConverter.class.getName()); defaultConverterMap.put("F", FileOfCallerConverter.class.getName()); defaultConverterMap.put("file", FileOfCallerConverter.class.getName()); defaultConverterMap.put("X", MDCConverter.class.getName()); defaultConverterMap.put("mdc", MDCConverter.class.getName()); defaultConverterMap.put("ex", ThrowableProxyConverter.class.getName()); defaultConverterMap.put("exception", ThrowableProxyConverter.class.getName()); defaultConverterMap.put("rEx", RootCauseFirstThrowableProxyConverter.class.getName()); defaultConverterMap.put("rootException", RootCauseFirstThrowableProxyConverter.class.getName()); defaultConverterMap.put("throwable", ThrowableProxyConverter.class.getName()); defaultConverterMap.put("xEx", ExtendedThrowableProxyConverter.class.getName()); defaultConverterMap.put("xException", ExtendedThrowableProxyConverter.class.getName()); defaultConverterMap.put("xThrowable", ExtendedThrowableProxyConverter.class.getName()); defaultConverterMap.put("nopex", NopThrowableInformationConverter.class.getName()); defaultConverterMap.put("nopexception", NopThrowableInformationConverter.class.getName()); defaultConverterMap.put("cn", ContextNameConverter.class.getName()); defaultConverterMap.put("contextName", ContextNameConverter.class.getName()); defaultConverterMap.put("caller", CallerDataConverter.class.getName()); defaultConverterMap.put("marker", MarkerConverter.class.getName()); defaultConverterMap.put("property", PropertyConverter.class.getName()); defaultConverterMap.put("n", LineSeparatorConverter.class.getName());
如何自定義輸出樣式
字符顏色定義
使用%
加上顏色代號, 然后內容放在后面的括號()里面
例如:
- %white(這里放輸出內容)
- 配合特殊字符串, 可以輸入時間, 線程名等
內置的一些樣式
代碼示例
使用內置模板
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <filter class="com.wang.cloud.store.common.LogFilter"/> <layout class="ch.qos.logback.classic.PatternLayout"> <pattern>${FILE_LOG_PATTERN}</pattern> </layout> </appender>
使用自定義模板
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <filter class="com.wang.cloud.store.common.LogFilter"/> <withJansi>false</withJansi> <encoder> <pattern>%white(%d{yyyy-MM-dd HH:mm:ss}) %highlight(%lsn) %green([%thread]) %highlight(%-5level) %boldMagenta(%logger{10}) - %cyan(%msg%n)</pattern> <charset>utf8</charset> </encoder> </appender>
總結
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
OKHttp3(支持Retrofit)的網絡數(shù)據(jù)緩存Interceptor攔截器的實現(xiàn)
本篇文章主要介紹了OKHttp3(支持Retrofit)的網絡數(shù)據(jù)緩存Interceptor攔截器的實現(xiàn),具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-12-12Spring?cloud?Hystrix注解初始化源碼過程解讀
這篇文章主要為大家介紹了Hystrix初始化部分,我們從源碼的角度分析一下@EnableCircuitBreaker以及@HystrixCommand注解的初始化過程,有需要的朋友可以借鑒參考下,希望能夠有所幫助2023-12-12springboot+EHcache 實現(xiàn)文章瀏覽量的緩存和超時更新
這篇文章主要介紹了springboot+EHcache 實現(xiàn)文章瀏覽量的緩存和超時更新,問題描述和解決思路給大家介紹的非常詳細,需要的朋友可以參考下2017-04-04SpringBoot+VUE實現(xiàn)前后端分離的實戰(zhàn)記錄
這篇文章主要介紹了SpringBoot+VUE實現(xiàn)前后端分離的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-04-04java將XML文檔轉換成json格式數(shù)據(jù)的示例
本篇文章主要介紹了java將XML文檔轉換成json格式數(shù)據(jù)的示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-12-12JavaMail實現(xiàn)發(fā)送超文本(html)格式郵件的方法
這篇文章主要介紹了JavaMail實現(xiàn)發(fā)送超文本(html)格式郵件的方法,實例分析了java發(fā)送超文本文件的相關技巧,需要的朋友可以參考下2015-05-05