我在Linux系统中使用tomcat 6x。它每天打印一个本地主机日志文件,如localhost.2011-06-07、localhost.2011-06-08。我想在本地主机达到1MB时对其进行轮换。
我可以在log4j中为我的web应用程序轮换日志文件。但是tomcat的这个本地主机日志文件,我不能让它旋转。除了使用logrotate之外,还有其他的解决方案吗?
发布于 2012-08-01 02:54:39
您是不想使用logrotate,还是sys管理员不允许您使用logrotate?
考虑到这种限制,我担心(根据我从documentation学到的),没有自动的方法来完成您想要的操作(仅根据大小来轮换日志文件)。
如果您只想停止Tomcat每天创建新日志的默认行为(我发现这对于开发环境或低流量站点非常恼人),您当然可以通过更改访问日志"Valve“的fileDateFormat属性来实现,在Ubuntu Server上,访问日志”Valve“是用/etc/tomcat7/server.xml.定义的它可能在Tomcat6的类似位置。
由于您提到了受限的sys管理员,因此我猜测此服务器不在您的控制之下,因此路径无关紧要。如果您能够修改Tomcat的日志配置,希望您知道在哪里可以找到合适的文件。
在.xml文件中,在为您站点(在我的例子中是本地主机)的适当主机配置"Catalina“引擎部分中,查找className设置为"org.apache.catalina.valves.AccessLogValve”的阀门实体。尽管Tomcat6文档没有提到它,但是可以推断默认的fileDateFormat是"yyyy-MM-dd“。在日志文件名中包含日期会告诉Tomcat (这意味着),您还希望每天轮换日志。如果你想轮换,比如说,一个月只轮换一次,只要把fileDateFormat改成"yyyy-MM“即可。
在我的服务器上,默认的日志记录阀定义如下:
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />要将其更改为每月日志轮换,我只需添加适当的fileDateFormat属性:
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
fileDateFormat="yyyy-MM" prefix="localhost_access_log." suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />因为我能够(并且愿意)使用logrotate,所以我完全关闭了Tomcat内置的日志轮换和基于日期的文件命名,只需在日志达到1MB时使用logrotate轮换日志。
编辑要回答dgrant的问题,更改是针对/etc/tomcat7/server.xml的,而我使用的实际阀门配置如下:
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
pattern="combined" rotatable="false"
prefix="access_log" />请注意,“组合”模式等同于(至少对于Tomcat7)原始配置中的显式模式定义。如果您想阅读更多内容,可以在我的原始文档链接中很好地介绍这些内容。只需查找有关rotatable属性的部分。
发布于 2011-07-13 02:42:41
正如您所知道的,我最终按照Tomcat网站上的说明将默认的Tomcat日志记录(java.util.logging)替换为Log4J:http://tomcat.apache.org/tomcat-6.0-doc/logging.html#Using_Log4j
发布于 2015-04-20 21:32:31
这在Tomcat7上应该很简单:see this docs
renameOnRotate属性
默认情况下,对于可循环的日志,活动访问日志文件名将包含fileDateFormat中的当前时间戳。在轮换期间,该文件被关闭,并创建并使用名称中具有下一个时间戳的新文件。将renameOnRotate设置为true时,时间戳不再是活动日志文件名的一部分。只有在循环期间,文件才会关闭,然后重命名以包含时间戳。这类似于大多数日志框架在执行基于时间的轮换时的行为。默认值: false
https://stackoverflow.com/questions/6278614
复制相似问题