log4j和logBack,同一個人寫的,logBack為log4j的升級版,SpringBoot中默認集成logBack
作用:記錄軟件發布后的一些bug,以及數據是怎樣被操作的
傳統開發弊端:
1.日志直接輸出在控制臺,關閉控制臺后,日志消失
2.代碼和日志耦合,需要到源碼中去更改日志
日志技術優點:
1.可以將系統執行的信息,方便記錄到指定的位置
2.可以隨時以開關的形式控制日志的啟停,無需侵入源碼
核心模塊:
1.logaback-core(必須有)
2.logback-calssic(必須有)
logback-access 可選
sl4j包下的LOGGER對象
日志記錄不會覆蓋,會在后面疊加
類名,自定義即可,代表日志對象的名稱,可以自定義
LOGGER.info("重要的信息")
LOGGER.error("錯誤信息")
LOGGER.debug()執行流程
?
?
?
?
<dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>1.7.30</version> </dependency> <dependency><groupId>ch.qos.logback</groupId><artifactId>logback-classic</artifactId><version>1.2.3</version><!--<scope>test</scope>--> </dependency> <dependency><groupId>ch.qos.logback</groupId><artifactId>logback-core</artifactId><version>1.2.3</version> </dependency>
?
<?xml version="1.0" encoding="UTF-8"?>
<configuration><!-- Console log output -->
<!-- name屬性 追加到控制臺--><appender name="Console" class="ch.qos.logback.core.ConsoleAppender"><encoder>
<!-- 輸出的格式--><!-- 格式化輸出:%d:表示日期 %thread:表示線程名 %-5level:級別從左顯示5個字符寬度--><pattern>%d{HH:mm:ss.SSS} [%thread] > %green(%-5level) %cyan(%logger{35}) - %m%n</pattern></encoder></appender><!-- Log file debug output -->
<!-- name屬性追加到文件夾--><appender name="File" class="ch.qos.logback.core.rolling.RollingFileAppender"><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><fileNamePattern>d:/rczp-ssm/%d{yyyy-MM-dd}.log.zip</fileNamePattern><!--日志最大保存時間--><maxHistory>365</maxHistory></rollingPolicy><encoder><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} > %-5level %X{X-B3-TraceId:-} ${springAppName:-} %logger{35} %m%n</pattern></encoder></appender>
<!-- 最低級別,大于等于此級別的日志才可以進行輸出--><root level="debug"><appender-ref ref="Console"/><appender-ref ref="File"/></root>
</configuration>
在resources目錄下創建logback.xml配置文件。
spring會自動加載classpath路徑下的配置文件,即resourecs目錄下的配置文件,加載順序如下:
首先嘗試加載logback-test.xm
如未找到,嘗試加載logback.groovy;
如未找到,嘗試加載logback.xml;
如都未找到,則使用服務提供程序加載工具(在 JDK 1.6 中引入)通過在類路徑中查找文件META-INF\services\ch.qos.logback.classic.spi.Configurator 來解析 com.qos.logback.classic.spi.Configurator接口的實現。 其內容應指定所需實現的完全限定類名。
如果上述操作均未成功,則 Logback 將使用BasicConfigurator自動配置自身,這將導致日志記錄輸出定向到控制臺。
?