Log4j 工具的 DailyRollingFileAppender 每天产生一个日志文件 , 但是没有提供归档的选项 , 这样长时间下来日志会越来越多 , 如下列表 :
...
order-debug.log.2019-01-25
order-debug.log.2019-01-24
order-debug.log.2019-01-23
order-debug.log.2019-01-22
order-debug.log
提供一个归档的脚本如下 :
#!/bin/bash
# Dependency:
## 1.cronolog
## 2.set crontab in 00:00
#定义变量
YESTERDAY_FORM=$(date -d "yesterday" +%Y%m%d)
LOGS_PATH="/usr/local/logs"
IP=$(/sbin/ifconfig -a|grep inet|head -1|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|tr -d "addr:")
CURRENT_MONTH=$(date +%Y-%m)
cd $LOGS_PATH
[ ! -e ${CURRENT_MONTH} ] && mkdir ${CURRENT_MONTH}
# 归档昨天的日志
mkdir -p ${CURRENT_MONTH}/${YESTERDAY_FORM}
mv *.${YESTERDAY_FORM} ${CURRENT_MONTH}/${YESTERDAY_FORM}
CURRENT_DAY=`date +%d`
LAST_MONTH=`date -d "$(date +%Y%m)01 last month" +%Y-%m`
if [ ${CURRENT_DAY} -eq 1 ] && [ -d ${LAST_MONTH} ];then
if [ ! -d ${IP} ];then
mkdir ${IP}
fi
tar -zcf ${IP}/${LAST_MONTH}.tar.gz ${LAST_MONTH}
fi
每天定时启动 , 但不建议设置为零点 , 因为和 Log4j 产生新一天日志的时间总有小误差 , 建议稍后几分钟
归档后列表如下 :
...
-- 20190222/
-- 20190223/
-- 20190224/
-- 20190225/
- 2019-02/
log-debug.log
作者 Github : tojohnonly , 博客 : EnskDeCode