摘要:配置本文講的文件的配置,其中主要是在介紹各類。注意,使用必須聲明節點子節點指定命名模式注意,必須包含,為窗口索引。并且為多帶帶拿出來。
Logback 配置
本文講logback的xml文件的配置,其中主要是在介紹各類appender。logback 的簡單例子
xml文件大概結構 導圖鏈接
xml
拽拽壞人幫 %cn %d{hh:MM:ss} [%20logger{0}] - %message%n
代碼使用
public class MyLogback { private final static Logger logger = LoggerFactory.getLogger("com.cck.MyLogback"); public static void main(String[] args) { logger.info("hello world"); } }xml配置中的appender
appender 節點是配置日志的目的地,該節點必須指定name和class屬性,不同的class會有不同的子節點。
分別有以下幾種類型的appender
ConsoleAppender 控制臺
FileAppender 文件
RollingFileAppender 滾動記錄文件
SiftingAppender 自定義篩選文件
1. ConsoleAppender 控制臺xml
拽拽壞人幫 %cn -%.-1p %d{hh:MM:ss} [%8logger{26}] - %message%n System.err
2. FileAppender 文件String 用于指定字符串在控制臺的打印方式
默認是 System.out, 也可以是System.err
xml
拽拽壞人幫 logback.log %cn -%.-1p %d{hh:MM:ss} [%8logger{26}] - %message%n true true
3. RollingFileAppender 滾動記錄文件 3.1 滾動記錄文件 -- 根據時間 TimeBasedRollingPolicylogback.log 指定日志文件名
true 日志是否追加到文件結尾,默認是true
true true的情況下,日志會被安全地寫入到文件 (加了鎖,因為存在多個FileAppender同時向日志文件寫入的情況),默認是false
xml
拽拽壞人幫 %cn -%.-1p %d{hh:MM:ss} [%8logger{26}] - %message%n logFile/%d{yyyy/MM/dd}.log 30
3.2 滾動記錄文件 -- 根據長度 FixedWindowRollingPolicy指定滾動行為 rollingPolicy 子節點
指定文件名模式, yyyy/mm/dd 表示按天滾動 模式例子
30 控制保存的最大文件數量
如果是每天滾動30 表示保存最近30天的日志文件
xml
拽拽壞人幫 testFixedRollFile.log %d{hh:MM:ss} [%20logger{0}] - %message%n logFile/logFile.%i.log 1 5 1KB
4. SiftingAppender 自定義篩選文件 假設有以下需求指定根據窗口長度進滾動。
注意,使用 FixedWindowRollingPolicy 必須聲明節點 rollingPolicy 子節點
指定命名模式
注意,必須包含%i,i 為窗口索引。
滾動時,日志文件名為logFile/logFile"i".log
eg .logFile/logFile1.log logFile/logFile2.logrollingPolicy 子節點
1 指定 i 的最小值rollingPolicy 子節點
5 指定 i 的最大值
指定何時滾動 triggeringPolicy 子節點
1KB 指定文件大小為 1KB 時進行滾動
userId 是6位的,現在想讓前4位id相同的用戶的日志放在一個文件夾中。并且id為 000000 多帶帶拿出來。 也就是以下的效果: /000000.log /0001 /01.log /23.log /0002 /12.log /00.log第一步,按照業務需求編寫Java類
package com.cck; import java.util.Map; import ch.qos.logback.classic.spi.ILoggingEvent; import ch.qos.logback.core.sift.AbstractDiscriminator; public class MyLoggerDiscriminator extends AbstractDiscriminator第二步,在xml使用{ public final static String KEY = "user"; private String filePath; private String fileName; private String defaultValue = "000000"; public String getDefaultValue() { return defaultValue; } public void setDefaultValue(String defaultValue) { this.defaultValue = defaultValue; } @Override public String getDiscriminatingValue(ILoggingEvent e) { // 拿到mdc Map mdc = e.getMDCPropertyMap(); String user = mdc.get(KEY); if(user == null || user == "000000") { return defaultValue; } // 返回一個路徑 filePath = user.substring(0, 4) + "/"; fileName = user.substring(4, 6); return filePath + fileName; } @Override public String getKey() { return KEY; } }
拽拽壞人幫 siftingLog/${user}.log %date{HH:mm:ss} %.-1level[%25logger{0}] - <%message>%n siftingLog/${user}.%d{yyyy-MM-dd}.log.gz
第三步,使用指定自定自定義的鑒別類
package com.cck; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.slf4j.MDC; public class MyLogback { private final static Logger logger = LoggerFactory.getLogger("com.cck.MyLogback"); public static void main(String[] args) { MDC.put(MyLoggerDiscriminator.KEY, "156651"); logger.debug("hello world"); } }
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/110391.html
摘要:日志名的從開始,自動遞增就是指拋出的異常,是顯示全部,如果在中寫入數字,則表示展示多少行重點來了,上邊都是輸出源。 一、簡介 LogBack是一個日志框架,它是Log4j作者Ceki的又一個日志組件。 LogBack,Slf4j,Log4j之間的關系 slf4j是The Simple Logging Facade for Java的簡稱,是一個簡單日志門面抽象框架,它本身只提供了日志F...
摘要:默認情況下將級別的日志輸出到控制臺中,不會寫到日志文件,且不能進行復雜配置。節點用于定義變量,方便使用。 showImg(https://raw.githubusercontent.com/FleyX/files/master/blogImg/20190320135049.png); 前言 ??java web 下有好幾種日志框架,比如:logback,log4j,log4j2(slj...
摘要:框架會默認加載下命名為或的配置文件。采用異步寫日志的方式而不讓此次寫日志發生磁盤,阻塞線程從而造成不必要的性能損耗。 通過閱讀本篇文章將了解到 1.日志輸出到文件并根據LEVEL級別將日志分類保存到不同文件 2.通過異步輸出日志減少磁盤IO提高性能 3.異步輸出日志的原理 配置文件logback-spring.xml SpringBoot工程自帶logback和slf4j的依賴,所...
摘要:框架會默認加載下命名為或的配置文件。采用異步寫日志的方式而不讓此次寫日志發生磁盤,阻塞線程從而造成不必要的性能損耗。 通過閱讀本篇文章將了解到 1.日志輸出到文件并根據LEVEL級別將日志分類保存到不同文件 2.通過異步輸出日志減少磁盤IO提高性能 3.異步輸出日志的原理 配置文件logback-spring.xml SpringBoot工程自帶logback和slf4j的依賴,所...
閱讀 5265·2021-09-22 15:59
閱讀 1856·2021-08-23 09:42
閱讀 2560·2019-08-29 18:42
閱讀 3444·2019-08-29 10:55
閱讀 2058·2019-08-27 10:57
閱讀 1759·2019-08-26 18:27
閱讀 2722·2019-08-23 18:26
閱讀 2912·2019-08-23 14:40