Mybatis深入解析之日誌配置
市面上的日誌框架
UL、JCL、Jboss-logging、logback、log4j、log4j2、slf4j....
常用日誌
日誌門面: SLF4J; 官方文件:http://www.slf4j.org/
日誌實現:Logback; 中文文件:http://www.logback.cn/
專案整合
1、匯入pom
<!-- log start -->
<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>
</dependency>
<!-- log end -->
2、新增logback配置檔案
<configuration>
<!--appender 追加器 日誌以哪種方式進行輸出
name 取個名字
class 不同實現類會輸出到不同地方
ch.qos.logback.core.ConsoleAppender 輸出到控制檯
-->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<!-- 格式 -->
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{100} - %msg%n</pattern>
</encoder>
</appender>
<!--cn.tulingxueyuan.mapper-->
<!--控制跟細粒度的日誌級別 根據包\根據類-->
<logger name="cn.test.mapper" level="TRACE"></logger>
org.apache.ibatis.transaction
<!--控制所有的日誌級別-->
<root level="error">
<!-- 將當前日誌級別輸出到哪個追加器上面 -->
<appender-ref ref="STDOUT" />
</root>
</configuration>
3、測試
Logger LOGGER= LoggerFactory.getLogger(this.getClass());
/**
* 日誌級別
* TRACE < DEBUG < INFO < WARN < ERROR。
* 1 2 3 4 5
*/
@Test
public void test02(){
LOGGER.trace("跟蹤級別");
LOGGER.debug("除錯級別");
LOGGER.info("資訊級別");
LOGGER.warn("警告級別");
LOGGER.error("異常級別");
}
4、擴充套件-每天生成日誌檔案並儲存
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!--======================================= 本地變數 ======================================== -->
<!--在沒有定義${LOG_HOME}系統變數的時候,可以設定此本地變數。提交測試、上線時,要將其註釋掉,使用系統變數。 -->
<!-- <property name="LOG_HOME" value="D:/data/logs" /> --><!-- 應用名稱:和統一配置中的專案程式碼保持一致(小寫) -->
<property name="APP_NAME" value="log"/>
<!--日誌檔案保留時間,這裡是根據FileNamePattern的月日來區分的 -->
<property name="LOG_MAX_HISTORY" value="2"/>
<!--日誌檔案最大的大小-->
<property name="LOG_MAX_MEMORY" value="1GB"/>
<!--定義日誌檔案的儲存地址 勿在 LogBack 的配置中使用相對路徑 -->
<!--應用日誌檔案儲存路徑 -->
<property name="LOG_APP_HOME" value="${APP_NAME}"/><!--=========================== 按照每天生成日誌檔案:預設配置=================================== -->
<!-- 控制檯輸出 -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<!--格式化輸出:%d表示日期,%thread表示執行緒名,%-5level:級別從左顯示5個字元寬度%msg:日誌訊息,%n是換行符 -->
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
</encoder>
</appender>
<!-- 按照每天生成日誌檔案:主專案日誌 -->
<appender name="APP" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!--日誌檔案輸出的檔名 -->
<FileNamePattern>${LOG_APP_HOME}/spring.log.%d{yyyy-MM}.log</FileNamePattern>
<!--日誌檔案保留天數 -->
<cleanHistoryOnStart>true</cleanHistoryOnStart>
<MaxHistory>${LOG_MAX_HISTORY}</MaxHistory>
</rollingPolicy>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<!--格式化輸出:%d表示日期,%thread表示執行緒名,%-5level:級別從左顯示5個字元寬度%msg:日誌訊息,%n是換行符 -->
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{100} - %msg%n</pattern>
</encoder>
<!--日誌檔案最大的大小-->
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<MaxFileSize>${LOG_MAX_MEMORY}</MaxFileSize>
</triggeringPolicy>
</appender>
<!--=============================== 日誌輸出: 預設主業務日誌 ====================================== -->
<logger name="java.sql.Connection" level="DEBUG" />
<logger name="java.sql.Statement" level="DEBUG" />
<logger name="java.sql.PreparedStatement" level="DEBUG" /><root level="INFO">
<appender-ref ref="APP"/>
<appender-ref ref="STDOUT"/>
</root>
</configuration>
如果不喜歡控制檯列印一大推,可以加上以下配置
<logger name="org.springframework">
<level value="WARN"/>
</logger>
<logger name="org.apache.shiro">
<level value="WARN"/>
</logger>
<logger name="freemarker">
<level value="WARN"/>
</logger>
<logger name="org.hibernate">
<level value="WARN"/>
</logger>
<logger name="org.hibernate.SQL">
<level value="INFO"/>
</logger>
相關文章
- 深入Mybatis原始碼——配置解析MyBatis原始碼
- Mariadb之日誌相關配置
- MyBatis 配置解析MyBatis
- Mybatis配置解析MyBatis
- Linux之日誌管理Linux
- 深入淺出MyBatis:MyBatis的所有配置MyBatis
- 基於.NetCore3.1系列 —— 日誌記錄之日誌配置揭祕NetCore
- 日誌分析平臺ELK之日誌收集器logstash常用外掛配置
- 深入淺出MyBatis:MyBatis解析和執行原理MyBatis
- myBatis原始碼解析-日誌篇(1)MyBatis原始碼
- Mybatis:CRUD操作及配置解析MyBatis
- Kubernetes之日誌和監控(十五)
- MySQL學習之日誌系統MySql
- mybatis原始碼解析-日誌介面卡MyBatis原始碼
- springboot logback配置mybatis 日誌以及多環境配置Spring BootMyBatis
- 2-django進階之日誌功能Django
- 日誌分析平臺ELK之日誌收集器logstash
- 日誌分析平臺ELK之日誌收集器filebeat
- kafka原始碼剖析(三)之日誌管理-LogManagerKafka原始碼
- MyBatis第四章:專案案例mybatis主要配置解析MyBatis
- SpringBoot之日誌註解和快取優化Spring Boot快取優化
- 程式設計入門之日誌聚合系統程式設計
- ASP.NET Core擴充套件庫之日誌ASP.NET套件
- MyBatis中日誌MyBatis
- mybatis日誌MyBatis
- 一文解析 MyBatis Generator 的使用及配置MyBatis
- 超實用的SpringAOP實戰之日誌記錄Spring
- 跟我一起學.NetCore之日誌(Log)模型核心NetCore模型
- 【TUNE_ORACLE】等待事件之日誌等待“log file sync”Oracle事件
- Apache基礎配置與日誌管理解析Apache
- mybatis的全域性配置檔案SqlMapConfig.xml解析MyBatisSQLXML
- MyBatis(六)日誌MyBatis
- mybatis原始碼配置檔案解析之五:解析mappers標籤流程圖MyBatis原始碼APP流程圖
- 甲方安全建設之日誌採集實操乾貨
- 【TUNE_ORACLE】等待事件之日誌等待“log file parallel write”Oracle事件Parallel
- iOS開源專案之日誌框架CocoaLumberjack(未整理版)iOS框架
- 基於.NetCore3.1系列 —— 日誌記錄之日誌核心要素揭祕NetCore
- MyBatis 配置MyBatis