Tomcat - 如果不停止则无法清除应用程序日志

Tomcat - 如果不停止则无法清除应用程序日志

我有一些 Tomcat,除非我停止 Tomcat 并清除日志,否则无法清除应用程序日志(格式为 [tomcat 名称].[主机名].[节点].[webapp].日志名称的日志)。日志大小会暂时变为零,但很快就会恢复到其原始大小。即使日志显示为零,磁盘使用率仍保持不变。

这会导致磁盘空间问题,因为存档脚本存档了日志但无法清除它。

为什么会发生这种情况?我该怎么做才能解决这个问题?停止 Tomcat 是不可能的,因为该公司的服务是 24/7 全天候的。

答案1

您的问题可能有几个答案。一种常见的方法,也可能是解决问题最简单的方法,就是引入日志轮换:

日志记录.属性

根据您的描述,我假设您正在谈论通常放置在 <TOMCAT_HOME>/conf/logging.properties

管理器应用程序示例:

3manager.org.apache.juli.FileHandler.maxDays = 3

您的归档脚本现在可以拾取“旧”文件。有关 Tomcat 日志记录的更多信息,请参见Tomcat 文档

阀门组件

另一种配置可能性(取决于您的具体需求)是修改 Valve 组件 <TOMCAT_HOME>/conf/server.xml

每个主机的配置示例:

<Host name="example.host.domain" appBase="webapp_example" unpackWARs="true" autoDeploy="true"> <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="webapp_access_log." suffix=".txt" pattern="%h %l %u %t &quot;%r&quot; %s %b" maxDays=3 /> </Host>

Log4j

另一种方法是使用DailyRollingFileAppenderRollingFileAppender在 Log4j 中,您也可以定义maxBackupIndex自动删除旧文件。

catalina.out

如果你需要旋转标准的“catalina.out”文件,你可以在常问问题

相关内容