Log4j使用笔记:天天生成一个日志文件、按日志大小生成文件

这里写图片描述

其中TestLog4j.java以下:java

package cn.zhoucy.test; import org.apache.log4j.Logger; public class TestLog4j { private static Logger logger=Logger.getLogger(TestLog4j.class); // 获取logger实例 public static void main(String[] args) { logger.debug("调试debug信息"); logger.info("普通Info信息"); logger.warn("警告warn信息"); logger.error("error信息"); logger.fatal("严重错误fatal信息"); } } 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

log4j.properties以下:apache

log4j.rootLogger=DEBUG, Console ,File ,DailyRollingFile ,RollingFile #Console log4j.appender.Console=org.apache.log4j.ConsoleAppender log4j.appender.Console.layout=org.apache.log4j.PatternLayout log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n #File log4j.appender.File = org.apache.log4j.FileAppender log4j.appender.File.File = E://File.log log4j.appender.File.layout = org.apache.log4j.PatternLayout log4j.appender.File.layout.ConversionPattern =%d [%t] %-5p [%c] - %m%n #DailyRollingFile log4j.appender.DailyRollingFile = org.apache.log4j.DailyRollingFileAppender log4j.appender.DailyRollingFile.File = E://DailyRollingFile.log log4j.appender.DailyRollingFile.layout = org.apache.log4j.PatternLayout log4j.appender.DailyRollingFile.layout.ConversionPattern =%d [%t] %-5p [%c] - %m%n #RollingFile log4j.appender.RollingFile = org.apache.log4j.RollingFileAppender log4j.appender.RollingFile.File = E://RollingFile.log log4j.appender.RollingFile.MaxFileSize=1KB log4j.appender.RollingFile.MaxBackupIndex=3 log4j.appender.RollingFile.layout = org.apache.log4j.PatternLayout log4j.appender.RollingFile.layout.ConversionPattern =%d [%t] %-5p [%c] - %m%n
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26

由配置文件:Console 和File是常规的控制台和文件输出,而DailyRollingFile 和RollingFile分别是按天生成,和按日志文件指定大小生成文件。
运行后,控制台输出以下:app

这里写图片描述

查看E盘根目录(我运行了7次程序,期间为了演示天天生成,改过两次电脑日期):spa

这里写图片描述

这里的File.log就是普通的输出,追加的方式。.net

二、天天生成一个日志文件

首先来看下配置:debug

#DailyRollingFile log4j.appender.DailyRollingFile = org.apache.log4j.DailyRollingFileAppender log4j.appender.DailyRollingFile.File = E://DailyRollingFile.log log4j.appender.DailyRollingFile.layout = org.apache.log4j.PatternLayout log4j.appender.DailyRollingFile.layout.ConversionPattern =%d [%t] %-5p [%c] - %m%n
  • 1
  • 2
  • 3
  • 4
  • 5

关键配置就两行:
第1行:调试

log4j.appender.DailyRollingFile = org.apache.log4j.DailyRollingFileAppender
  • 1

就代表是天天生成一个日志文件。日志

第2行:code

log4j.appender.DailyRollingFile.File = E://DailyRollingFile.log
  • 1

代表生成的日志文件名称,不过要注意,这里表示的是当天的文件名字,历史文件会以日期结尾。
最后两行在上一篇Log4j使用笔记(一)讲过,指明输出格式的。图片

三、按指定大小生成文件

有的时候,会须要指定文件大小,好比说,日志文件生成到了1M,就新生成一个日志文件,同时能够指定一共能够生成的最大文件数。配置文件以下:

#RollingFile log4j.appender.RollingFile = org.apache.log4j.RollingFileAppender log4j.appender.RollingFile.File = E://RollingFile.log log4j.appender.RollingFile.MaxFileSize=1KB log4j.appender.RollingFile.MaxBackupIndex=3 log4j.appender.RollingFile.layout = org.apache.log4j.PatternLayout log4j.appender.RollingFile.layout.ConversionPattern =%d [%t] %-5p [%c] - %m%n
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

关键的就是第3行和第4行:

log4j.appender.RollingFile.MaxFileSize=1KB log4j.appender.RollingFile.MaxBackupIndex=3
  • 1
  • 2

表示的是,每一个生成的日志最大是1KB,容许生成的最多文件数量是3,便是文件数量达到上限3个之后,则覆盖以前的文件。

附:log4j-1.2.17下载地址http://download.csdn.net/detail/theblackbeard/9820176