Log4j 日志归档脚本

29 篇文章 0 订阅
6 篇文章 0 订阅

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值