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