logback非同步日誌

2022-02-05 08:32:51 字數 2350 閱讀 7394

一、為什麼使用非同步日誌why

為提高程式效能,盡量預設都使用非同步日誌,如果不使用,可能日誌在打包的時候,會占用大量磁碟io和cpu,導致程式效能下降

二、依賴

<

dependency

>

<

groupid

>org.slf4j

groupid

>

<

artifactid

>slf4j-api

artifactid

>

<

version

>1.7.20

version

>

dependency

>

<

dependency

>

<

groupid

>org.slf4j

groupid

>

<

artifactid

>log4j-over-slf4j

artifactid

>

<

version

>1.7.20

version

>

dependency

>

<

dependency

>

<

groupid

>ch.qos.logback

groupid

>

<

artifactid

>logback-classic

artifactid

>

<

version

>1.1.7

version

>

dependency

>

<

dependency

>

<

groupid

>ch.qos.logback

groupid

>

<

artifactid

>logback-core

artifactid

>

<

version

>1.1.7

version

>

dependency

>

注意:log4j-over-slf4j 和 slf4j-log4j12會迴圈引用,導致記憶體溢位。

configuration>

,通過定義的值會被插入到logger上下文中

4. 獲取時間戳字串:,一般不設定

logs/abc.log

$ class="ch.qos.logback.core.rolling.timebasedrollingpolicy">

logs/abc.%d.log.zip

7true

name: 用來指定受此loger約束的某乙個包或者具體的某乙個類,是乙個路徑

level: 用來設定列印級別,大小寫無關:trace, debug, info, warn, error, all 和 off

addtivity: 是否向上級loger傳遞列印資訊。預設是true,如果傳遞有可能列印多次,一般設定為false

6.,也是元素,但是它是根logger,只有乙個level屬性,一般是warn級別往上

7. 非同步列印日誌,先把日誌寫入阻塞佇列,然後才寫到磁碟上

8. 遮蔽某個包的日誌

<

logger

name

="packagename"

level

="off"

>

logger

>

9. 例子

<?xml version="1.0" encoding="utf-8"?>

class="ch.qos.logback.classic.patternlayout">

$logs/abc.log

$ class="ch.qos.logback.core.rolling.timebasedrollingpolicy">

logs/abc.%d.log.zip

7true

512

參考:

logback 非同步日誌配置

目前所有的日誌記錄方式採用的都是同步的方式,即直接將日誌寫入檔案。在多應用的時候,這種效果會導致一定的執行緒執行延遲,所以可以採用非同步的方式處理。0.11及以上版本存在 非同步日誌記錄是在原來logback上的擴充套件,並不是替代方式,所以只需要在原來的配置檔案上新增一下配置 這樣你的工程就會使用...

logback 日誌非同步配置

5level logger 5line msg n d.log 10 這種同步寫入的方式勢必會影響業務的執行效率。幸運的是,logback 提供了非同步的方式來解決這個問題,logback spring.xml 配置如下 5level logger 5line msg n d.log 10 0 51...

logback高階特性使用 非同步記錄日誌

注意 該功能需要高版本才能支援,如1.0.11。當logging 屬性名型別描述 queuesize intblockingqueue的最大容量,預設情況下,大小為256。discardingthreshold int預設情況下,當blockingqueue還有20 容量,他將丟棄trace deb...