<?xml version="1.0" encoding="utf-8"?
>
>
->
[%-5level]%logger
:%5line-%msg%n"/>
>
>$
>
>
>
>$/%d.log>
>10>
>
>
>$
>
>
>
>
->
>
>
這種同步寫入的方式勢必會影響業務的執行效率。幸運的是,logback 提供了非同步的方式來解決這個問題,logback-spring.xml 配置如下:
<?xml version="1.0" encoding="utf-8"?
>
>
->
[%-5level]%logger
:%5line-%msg%n"/>
>
>$
>
>
>
>$/%d.log>
>10>
>
>
>$
>
>
>0>
>512>
->
>
>
->
>
>
引數說明:引數
預設值說明
discardingthreshold
20如果設定discardingthreshold=0,表示 queue 滿了,不丟棄,block 執行緒。預設情況下,當阻塞佇列剩餘 20% 的容量時,它將丟棄級別跟蹤、除錯和資訊事件,只保留級別警告和錯誤事件。要保留所有事件,請將 discardingthreshold 設定為0
queuesize
256假設 io 影響 30s,日誌和 qps 比例是1:1,單容器壓測值 1500 qps 則可以推算出 queuesize 的值,queuesize 的設定公式:30 * 1500=45000
neverblock
false
如果為 false(預設值),則追加程式將阻止追加到完整佇列,而不是丟失訊息。設定為 true 時,附加程式只會丟棄訊息,不會阻止您的應用程式
最後,通過一張圖來說明一下非同步寫日誌的原理:
logback 非同步日誌配置
目前所有的日誌記錄方式採用的都是同步的方式,即直接將日誌寫入檔案。在多應用的時候,這種效果會導致一定的執行緒執行延遲,所以可以採用非同步的方式處理。0.11及以上版本存在 非同步日誌記錄是在原來logback上的擴充套件,並不是替代方式,所以只需要在原來的配置檔案上新增一下配置 這樣你的工程就會使用...
logback非同步日誌
一 為什麼使用非同步日誌why 為提高程式效能,盡量預設都使用非同步日誌,如果不使用,可能日誌在打包的時候,會占用大量磁碟io和cpu,導致程式效能下降 二 依賴 dependency groupid org.slf4j groupid artifactid slf4j api artifactid...
Logback日誌配置
logback越來越流行,不過使用過程中覺得還不錯,配置簡單明瞭。不過有幾點需要注意的是 spring boot中使用logback不需要再引入logback的三個jar包,因為在spring boot starter logging已經整合了它。幾種日誌過濾器,需要了解明白,不然不能配置到自己想要...