Apache Tomcat Catalina日志

8

有没有办法定期清理catalina.out日志文件?

如果日志文件增加到5GB以上,服务器将自动关闭。

7个回答

8

如果您正在使用Linux系统,并且希望在不重启Tomcat的情况下立即清除日志,则可以执行以下操作:

cat /dev/null > /path/to/logfile

2

我已经编写了一个.sh文件来清除catalina.out文件,我将把它放在我的项目部署在tomcat的位置。现在,我将在一定时间间隔内从我的Java代码中执行该文件。

以下是我的.sh文件中的命令

echo "" > catalina.out文件的路径


1

truncate会保留文件指针并删除其内容。日志记录将继续工作,释放磁盘空间,您无需重新启动任何进程(如tomcat)。

可以实现日志轮换,通过将文件复制到某个备份位置。

truncate -s 0 catalina.out

1

一种可能的方法是使用log4j代替tomcat提供的默认日志记录。log4j提供了RollingFileAppender,可以完成上述工作。

有关详细信息,请参阅this tomcat链接。


0

我建议使用cronolog - 它基本上作为代理工作。您可以通过它传输日志输出,并根据需要配置cronolog的设置以旋转日志文件。

这样做的好处是,您不需要仅为日志清理/旋转而重新启动Tomcat。


0

你应该使用日志轮换和日志归档。

日志轮换将根据大小、日期或时间拆分日志,以便日志不会变得非常庞大。 而不活动的日志文件可以被压缩或移动到不同的路径/文件系统中。


0

以下命令可用于在不停止Tomcat的情况下清除文件的日志。

sudo cat /dev/null > /opt/tomcat/apache-tomcat-9.0.37/logs/catalina.out  

为了让文件大小更小,可以采用以下方法之一:
  1. 您可以使用上述命令,并将其添加到中,以每天/每周/每月或根据需要运行。

  2. 在中使用工具。这是一个Linux中的日志管理命令行工具。它可以根据不同条件旋转日志文件。特别地,我们可以按固定时间间隔或文件增长到一定大小时旋转日志文件。您可以单击此处获取更多信息。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接