jar包启动的日志管理问题

直接使用java命令运行jar,快速轻便,但是日志管理是个难题,因为服务不能中断,那么日积月累,必然导致日志文件占满磁盘空间。

需求:只保留一周的日志文件。

思路:对日志文件使用追加覆盖、删除日志文件内容,经过试验测试发现以下异常:

问题一:

使用命令启动java的一个jar包:

root@test:/test# nohup java -jar portal-1.0-SNAPSHOT.jar &>>t.txt &

在t.txt文件中追加一行数据,出现数据自动消失的问题,是否为脏数据,导致误读:

root@test:/test# echo "31777777777777777" >> t.txt 

问题二:

使用命令启动java的一个jar包:

root@test:/test# nohup java -jar portal-1.0-SNAPSHOT.jar &>>t.txt &

直接删除掉t.txt文件:

java的jar还处于运行状态,日志则会追加到什么地方??并且日志文件不会再被创建

 

问题三:

运行jar包后,当日志体积达到几十M后,直接使用覆盖的方法追加内容(echo "111"  >t.txt)。隔几秒钟日志文件又变大了,不知道是不是运行java项目的那个进程一直在打开日志文件:

可以查看到插入覆盖的内容,原本的日志信息变成全部变成空白(好像也不是空行):

 

原文地址:https://www.cnblogs.com/liyuanshu/p/12836764.html