# Log4jDailyRolling
**Repository Path**: joysing/Log4jDailyRolling
## Basic Information
- **Project Name**: Log4jDailyRolling
- **Description**: 自动压缩过去的(今天之前的)log4j文件
- **Primary Language**: Java
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2021-05-06
- **Last Updated**: 2022-06-20
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Log4jDailyRolling
当你把log4j分类输出时,比如debug输出在debug.log,error输出在error.log,可以用这个方法把每天生成的debug.log和error.log压缩成一个zip文件
log4j压缩使用方法
----
自定义了一个类org.apache.log4j.MyDailyRollingFileAppender
这个类继承了org.apache.log4j.DailyRollingFileAppender(注意我自定义的类多了个“My”)
**❤WARNING❤:如果你只想使用,不想添加更多高级的功能,可以忽略下面第1点和第2点。**
1.DailyRollingFileAppender的机制是:
----
生成log的时候,检测之前保存的log文件的最后修改日期,
如果不是今天,就把之前的重命名为xxx.log.2018-11-26这种格式,然后再把今天的新建一个xxx.log写进去。
其中2018-11-26是xxx.log的最后修改日期。
2.我的MyDailyRollingFileAppender思路
----
继承DailyRollingFileAppender的机制是类,就可以利用这个机制,在有新的xxx.log.2018-11-26生成的时候,把xxx.log.2018-11-26压缩到2018-11-26.zip并且删除xxx.log.2018-11-26。
logPath是我添加的参数,每个log文件都要写成相同的logPath才会压缩在一起。
如果你想添加其他自定义参数,记得要添加set方法,比如我的setLogPath(),才可以在xml文件中使用该参数(比如\)
3.使用的时候注意:
----
0. 压缩好的日志文件不要直接打开,复制出来再打开。避免文件正在压缩你却打开了。
1. MyDailyRollingFileAppender一定要在org.apache.log4j包下面,自己新建一个就行。
2. 设置\,使D:/cccc/logs/aaa/下面的日志文件压缩。
3. 一定注意\中的class是自定义的MyDailyRollingFileAppender而不是官方的DailyRollingFileAppender。
4. 其他配置都和官方的DailyRollingFileAppender配置一模一样。如果配置无效,尝试第5点。
5. 假设\无效,这样解决:
在MyDailyRollingFileAppender新建一个datePattern参数,
同时添加public void setDatePattern(String datePattern)方法,
方法体里面写super.setDatePattern(datePattern);就可以了。