logback支援類似於佔位符的變數替換功能,即如果輸出的msg裡面帶有{}符號且括號中間不帶其他字元,那麼logback在構造loggingevent的時候,會用messageformat類來格式化msg,將{}替換成具體的引數值。
示例如下:
logger.info("{},it's ok.","hi");
則輸出結果如下:
hi,it's ok.
支援多jvm同時操作同乙個日誌檔案
如果多個jvm同時操作同乙個日誌檔案,則需要使用下面的方式
true
/opt/log/testc.%d.%i.log
30100mb
%d [%thread] %-5level %logger
-%msg%n
有幾點要注意:
1.如果多jvm同時操作同乙個檔案,則會出現日誌不回滾、打出的日誌串掉的場景。
2.如果按小時來回滾,並且乙個小時內並沒有業務日誌輸出,那麼這個小時的日誌檔案是不會生成的,會跳過這個小時的日誌檔案的生成。也是同樣的,如果隔一段時間沒有輸出日誌,前面過期的日誌不會被刪除,只有再重新列印日誌的時候,會觸發刪除過期日誌的操作。
4.如果日誌列印較多,則可能會出現將硬碟撐爆的情況,還是建議使用fixedwindowrollingpolicy回滾策略,這種策略固定了日誌檔案大小,超出則回滾。業務上出現了多個jvm同時操作同乙個日誌檔案,仍建議每個jvm只操作乙個日誌檔案。
logback高階特性使用
非同步記錄日誌 注意 該功能需要高版本才能支援,如1.0.11。屬性名型別 描述queuesize intblockingqueue的最大容量,預設情況下,大小為256。discardingthreshold int預設情況下,當blockingqueue還有20 容量,他將丟棄trace debu...
logback高階特性使用 非同步記錄日誌
注意 該功能需要高版本才能支援,如1.0.11。當logging 屬性名型別描述 queuesize intblockingqueue的最大容量,預設情況下,大小為256。discardingthreshold int預設情況下,當blockingqueue還有20 容量,他將丟棄trace deb...
Logback高階用法
在日常的生產中,尤其是在微服務盛行的今天,我們的服務很可能是作為分布式應用上的乙個點,會接受來自不同客戶端的請求,那麼在服務的為每行日誌標記出來自的客戶端呢?本篇我們通過介紹logback的高階用法,來為大家實現。日誌擴充套件 在分布式應用的今天,如何通過日誌把客戶端請求的不同應用的日誌串起來,展示...