直接使用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项目的那个进程一直在打开日志文件:
可以查看到插入覆盖的内容,原本的日志信息变成全部变成空白(好像也不是空行):