我们在Apache 6容器中运行我们的web应用程序。我们的代码使用SLF4J和Logback,滚动/清除非常好。Tomcat日志(catalina,stdout等)只需在Tomcat服务重启时删除即可。
问题是我们还在做一些HTTP日志记录。据任何人所知,它来自Tomcat server.xml文件中的这一行。
<Valve className="org.apache.catalina.valves.FastCommonAccessLogValve" directory="httplogs" pattern="combined" resolveHosts="false" prefix="" suffix=".log" rotatable="true" fileDateFormat="yyyy-MM-dd" />它似乎旋转得很好,但从不清洗。是否有一种让Tomcat自动清除此操作的方法,或者是否需要修改重新启动脚本来清除httplogs目录?
发布于 2009-08-07 20:32:37
我建议使用cron作业(UNIX)或计划任务(Windows)清理日志文件。
首先确定你想把日志保存多久,一个星期,一个月,三个月?然后每天运行一个脚本,移除旧日志。在Unix上删除90天以上的日志文件:
find /path/to/httplogs/ -name "*.log" -type f -mtime +90 -exec rm -f {} \;在windows上可以使用类似的命令(forfiles仅在某些版本上可用)
forfiles /p "C:\path\to\httplogs\" /s /m *.log /d -90 /c "cmd /c del @PATH"阅读这些命令的在线文档,并在将它们放入生产环境之前了解和测试它们正在做什么。
如果这些日志有一个公共前缀,那么您可以将其添加到搜索掩码中,以便更具体地删除文件。或者,我通常会gzip旧文件,而不是删除它们,以防它们后来被证明是有用的。
发布于 2009-07-07 07:54:16
当您查看类的源代码(例如在谷歌的代码搜索中 )时,您可以看到根本没有清除。如果您身边的人可以编写一些代码行Java,您可以轻松地扩展类并添加所需的函数。
发布于 2009-07-07 04:25:33
我非常肯定,在tomcat服务重新启动时,需要清除其中一个日志以及您提到的其他日志。
https://serverfault.com/questions/36554
复制相似问题