logback是一種日志框架攻询,我們可以通過配置logback,讓日志以指定的形式放在指定的位置疏之。logback配置文件中包括兩個(gè)屬性(contextName 和 property)以及三個(gè)節(jié)點(diǎn)(appender, root 和logger), 下面分別來介紹速挑。
一谤牡,屬性
? ? 1. contextName屬性,定義了日志的名稱姥宝,如果在一個(gè)項(xiàng)目的多個(gè)xml文件中都有日志的配置信息翅萤,需要保證這些contextName, 也就是日志名稱一致,否則會報(bào)錯(cuò)伶授。
? ? 2. property屬性断序,可以理解成java代碼中的成員變量,定義好后糜烹,在整個(gè)xml文件中都可以引用违诗。例如,定義<property name="maxFileSize" value="40MB"/>疮蹦, 在其他位置可以通過${maxFileSize}來引用這個(gè)變量诸迟。
二,節(jié)點(diǎn)
? ? 1.?appender節(jié)點(diǎn)愕乎,追加節(jié)點(diǎn)阵苇,用于指定日志的輸出形式,有name和class屬性感论,encoder和rollingPolicy子節(jié)點(diǎn)绅项。name代表名字,class代表輸出策略比肄,可以控制臺形式輸出快耿,也可以文件形式輸出囊陡。
? ? ? ? 1.1 輸出到控制臺
? ? ? ? 其中l(wèi)ayout為log4j節(jié)點(diǎn),此處省略掀亥。
????????%d 代表時(shí)間,可以用%d{yyyy-MM-dd HH:mm:ss}
? ??????%c{1}:%L? %c日志輸出者的類撞反,{1}代表長度,只打印最右邊的第一個(gè)名稱搪花,%L 代表行號
? ??????%msg 代表日志的具體信息
????????%n 代表換行
? ? ? ? 另外遏片,還有 %thread表示線程名, %-5level 表示日志級別,允許以五個(gè)字符長度輸出撮竿,%yellow()顏? ?色吮便,%highlight()高亮
? ? ? ? 1.2 輸出到文件
? ? ????LevelFilter為日志級別過濾器,如果事件等級匹配設(shè)置級別倚聚,則接受线衫,否則拒絕
????????介紹一下 滾動策略, 文件名稱格式為${tomcatPath}/info/XXX-info.%d{yyyy-MM-dd}.%i.log惑折, %d表示日期授账,%i表示索引號,當(dāng)日志文件大于${maxFileSize}的時(shí)候惨驶,創(chuàng)建新文件白热,索引從零開始遞增,日志最多保存${maxHistory}天粗卜。
? ? 2. root節(jié)點(diǎn)
? ??????
? ? ? ? 啟用配置屋确,level為info,啟用info級別及以上的 error, warn
? ?3. logger節(jié)點(diǎn)
? ? ? ? 對單個(gè)包或者類添加配置续扔, 這里級別為DEBUG攻臀, 輸debug及以上級別的日志