SpringBoot项目nohup启动运行日志过大的解决方案
SpringBoot项目nohup启动运行日志过大
如下SpringBoot启动命令
nohup java -Xmx2048m -Xms2048m -jar springboot-demo.jar >>./log.los 2>&1 &
使用这条命令启动会导致日志文件和jar包同级,并且随着日积月累,越来越大。最终撑爆目录。
临时解决办法
如果日志已经撑爆了你的盘符,可以使用echo > access.log在日志文件写入一个空,如果直接rm -rf log.log会导致日志不正常打印(不会影响到logback等框架的日志打印)。
解决办法
1、使用日志框架,例如logback.xml,配置打印最近三个月或六个月的日志,超过时间的会自动删除。
2、将日志指定一个黑洞目录,使得本地不打印此日志:
nohup java -Xmx2048m -Xms2048m -jar springboot-demo.jar >>/dev/null 2>&1 &
这样不会影响logback日志的正常打印。
SpringBoot项目nohup运行按日期拆分日志
springboot打包成jar后,通常放于linux使用nohup来执行,如:↓
nohup java -jar PACKAGE_NAME.jar > LOGFILE_NAME 2>&1 &
但是弊端是产生的日志文件只有一个,且会越来越大
这里介绍一个linux工具:cronolog(文件分割工具)
下载地址:https://pkgs.org/download/cronolog
如何使用
使用yum安装cronolog
yum install cronolog -y
修改jar包启动命令
nohup java -jar PACKAGE_NAME.jar | cronolog ./catalina-%Y-%m-%d.out >> /dev/null 2>&1 &
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
SpringBoot异步使用@Async的原理以及线程池配置详解
在项目中当访问其他人的接口较慢时,不想程序一直卡在耗时任务上,想程序能够并行执行,我们可以使用多线程来并行的处理任务,也可以使用spring提供的异步处理方式@Async,这篇文章主要给大家介绍了关于SpringBoot异步使用@Async的原理以及线程池配置的相关资料2021-09-09
解决idea 通过build project 手动触发热部署失败的问题
在debug运行项目的过程中,并且保证(不添加方法,不修改方法名)一定的规则的情况下,可以通过build project 来手动热部署项目,本文给大家介绍解决idea 通过build project 手动触发热部署失败的问题,感兴趣的朋友一起看看吧2023-12-12
Java设计模式之模板方法模式Template Method Pattern详解
在我们实际开发中,如果一个方法极其复杂时,如果我们将所有的逻辑写在一个方法中,那维护起来就很困难,要替换某些步骤时都要重新写,这样代码的扩展性就很差,当遇到这种情况就要考虑今天的主角——模板方法模式2022-11-11


最新评论