1. 程式人生 > 其它 >Log4j 配置 按照檔案大小 和 按日期分割的日誌檔案

Log4j 配置 按照檔案大小 和 按日期分割的日誌檔案

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