log4j配置 自动删除日志文件

 

1. 需要使用的两个包

log4j-core-xx.jar     log4j-api-xx.jar

 

2. classpath为scr文件夹下

必须注意.xml 文件的文件名为log4j2

 

  
  
  
  
      
        logs/sample  
        mylog  
      
  
      
          
          
              
          
  
          
              
              
                  
                  
                  
                  
              
              
              
          
  
          
          
          
              
          
  
          
          
          
              
              
          
  
      
      
      
          
              
          
          
              
          
      
  

 

3. 参数说明

第3行 

      中的 monitorInterval="1800"指log4j2每隔1800秒(半小时),自动监控该配置文件是否有变化,如果变化,则自动根据文件内容重新配置。

5-8行 

      定义了一些属性(可以根据需要自己随便添加),主要是为了后面引用起来方便。

16行 

     RollingRandomAccessFile 即表示以文件方式记录,注意一下filePattern的设置,它与24行的SizeBasedTriggeringPolicy(表示单个文件最大多少容量)结合在一起,非常有用,以这段配置为例,当单个文件达到10M后,会自动将以前的内容,先创建类似 2014-09(年-月)的目录,然后按 "xxx-年-月-日-序号"命名,打成压缩包。

27行 

      DefaultRolloverStrategy max="20"表示压缩包,最多保留20个。

45-48行

      定义了一个新logger,它的级别是trace,使用文件方式来记录日志,additivity="true"这里注意一下,因为下面还有一个root logger,任何其它的logger最终都相当于继承自root logger,所以“com.cnblogs.yjmyzz.App2”这个logger中,如果记录了error及以上级别的日志,除了文件里会记录外,root logger也会生效,即:控制台也会输出一次。如果把additivity="true" 中的true,改成false,root logger就不会再起作用,即只会记录在文件里,控制台无输出。

TimeBasedTriggeringPolicy 基于时间的触发策略。该策略主要是完成周期性的log文件封存工作。有两个参数:

interval,integer型,指定两次封存动作之间的时间间隔。单位:以日志的命名精度来确定单位,比如yyyy-MM-dd-HH 单位为小时,yyyy-MM-dd-HH-mm 单位为分钟

modulate,boolean型,说明是否对封存时间进行调制。若modulate=true,则封存时间将以0点为边界进行偏移计算。比如,modulate=true,interval=4hours,那么假设上次封存日志的时间为03:00,则下次封存日志的时间为04:00,之后的封存时间依次为08:00,12:00,16:00,。。。

你可能感兴趣的:(java)