Log4j 配置 按照檔案大小 和 按日期分割的日誌檔案
阿新 • • 發佈:2022-02-25
Log4j是Apache的一個開源專案,通過使用Log4j,我們可以控制日誌資訊輸送的目的地是控制檯、檔案、GUI元件
log4j-1.2.17.jar:https://repo1.maven.org/maven2/log4j/log4j/1.2.17/log4j-1.2.17.jar
Maven
<!-- https://mvnrepository.com/artifact/log4j/log4j --> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency>
一、按檔案大小分割日誌檔案
效果如下
log4j.properties 配置檔案
### 將等級為debug的日誌輸出到console和file, console和file的定義在下面 ### log4j.rootLogger = DEBUG,console,file ### console 配置輸出到控制檯 ### log4j.appender.console = org.apache.log4j.ConsoleAppender log4j.appender.console.Target = System.out log4j.appender.console.Threshold = DEBUG log4j.appender.console.layout = org.apache.log4j.PatternLayout log4j.appender.console.layout.ConversionPattern = [%c] - %m%n #log4j.appender.console.layout.ConversionPattern = %d{ABSOLUTE} %5p %c{ 1 }:%L - %m%n ### file 配置輸出到檔案 ### ### RollingFileAppender: 以檔案大小分割達到指定大小就產生新檔案, MaxFileSize: 指定檔案大小, MaxBackupIndex: 最多儲存多少個檔案 ###log4j.appender.file = org.apache.log4j.RollingFileAppender log4j.appender.file.MaxFileSize = 10kb log4j.appender.file.MaxBackupIndex = 10 log4j.appender.file.File = logs/log.log log4j.appender.file.Threshold = DEBUG log4j.appender.file.Append = true log4j.appender.file.layout = org.apache.log4j.PatternLayout log4j.appender.file.layout.ConversionPattern = [%p] [%d{yyyy-MM-dd HH:mm:ss}] [%c]%m%n #log4j.appender.file.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n ### 設定輸出sql的級別,其中logger後面的內容全部為jar包中所包含的包名 ### log4j.logger.org.mybatis=DEBUG log4j.logger.java.sql.Statement=DEBUG log4j.logger.java.sql.ResultSet=DEBUG log4j.logger.java.sql.PreparedStatement=DEBUG #log4j.logger.java.sql.Connection=DEBUG
二、按日期分割每天產生一個日誌檔案
效果如下
log4j.properties 配置檔案
### 將等級為debug的日誌輸出到console和file, console和file的定義在下面 ### log4j.rootLogger = DEBUG,console,file ### console 配置輸出到控制檯 ### log4j.appender.console = org.apache.log4j.ConsoleAppender log4j.appender.console.Target = System.out log4j.appender.console.Threshold = DEBUG log4j.appender.console.layout = org.apache.log4j.PatternLayout log4j.appender.console.layout.ConversionPattern = [%c] - %m%n #log4j.appender.console.layout.ConversionPattern = %d{ABSOLUTE} %5p %c{ 1 }:%L - %m%n ### file 配置輸出到檔案 ### ### DailyRollingFileAppender: 以日期分割每天產生一個檔案, DatePattern: 日誌檔名稱格式 ### log4j.appender.file = org.apache.log4j.DailyRollingFileAppender log4j.appender.file.DatePattern = '_'yyyy-MM-dd'.log' log4j.appender.file.File = logs/log.log log4j.appender.file.Threshold = DEBUG log4j.appender.file.Append = true log4j.appender.file.layout = org.apache.log4j.PatternLayout log4j.appender.file.layout.ConversionPattern = [%p] [%d{yyyy-MM-dd HH:mm:ss}] [%c]%m%n #log4j.appender.file.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n ### 設定輸出sql的級別,其中logger後面的內容全部為jar包中所包含的包名 ### log4j.logger.org.mybatis=DEBUG log4j.logger.java.sql.Statement=DEBUG log4j.logger.java.sql.ResultSet=DEBUG log4j.logger.java.sql.PreparedStatement=DEBUG #log4j.logger.java.sql.Connection=DEBUG
如果 DatePattern 配置為
log4j.appender.file.DatePattern = '_'yyyy-MM-dd-HH'.log'
則可以實現按小時 建立日誌檔案
三、控制某個類是否輸出日誌
#log4j.logger.org.eclipse.jetty=OFF #log4j.logger.org.apache.http=OFF #log4j.logger.io.netty=OFF #log4j.logger.com.joincall.j3c.pbxlangshi=ON #log4j.logger.com.joincall.j3c.agentservice=ON #log4j.logger.com.joincall.j3c.JoinCallCC=ON