默认情况下,Tomcat将日期附加到日志文件,例如localhost.2010-12-22.log,与catalina日志相同。我不想在日志文件中的日期,我似乎无法找到如何删除它。日志记录文档没有说明日期模式。非常感谢任何想法。
答案 0 :(得分:25)
其他答案都没有给我太多帮助,尽管托马斯是最接近的。我找到的文件是:
所以我将以下内容添加到Tomcat的logging.properties
文件中。这将从localhost日志和Tomcat默认日期的其他三种日志类型中删除日期:
1catalina.org.apache.juli.FileHandler.rotatable = false
2localhost.org.apache.juli.FileHandler.rotatable = false
3manager.org.apache.juli.FileHandler.rotatable = false
4host-manager.org.apache.juli.FileHandler.rotatable = false
#
# default is true, which causes a date to be added to the filename
1catalina.org.apache.juli.FileHandler.suffix = log
2localhost.org.apache.juli.FileHandler.suffix = log
3manager.org.apache.juli.FileHandler.suffix = log
4host-manager.org.apache.juli.FileHandler.suffix = log
#
# default is .log, but without date, the extra dot is not needed
答案 1 :(得分:5)
de_simakov's answer大部分都是正确的 - 但它有一个字母拼写错误。在conf / server.xml中找到与此类似的配置
<Valve className="org.apache.catalina.valves.AccessLogValve"
directory="logs" prefix="http_access" suffix="log" pattern="common"
rotatable="false" resolveHosts="false" />
请注意 rotate =“false”属性。
答案 2 :(得分:4)
您链接到的文档用于在应用程序中进行日志记录,而不是用于Tomcat服务器本身的日志记录。如另一个答案所述,相应的文档是here。在Ubuntu Server系统上,您需要更改/etc/tomcat7/server.xml中的设置。此文件可能位于系统的其他位置。
与此类似的配置将阻止Tomcat将日期放在日志文件名中 - 但它也会阻止您的访问日志被Tomcat轮换,这可能是一个坏主意,除非您设置一个合适的< strong> logrotate 服务器配置。
<Valve className="org.apache.catalina.valves.AccessLogValve"
directory="logs" prefix="http_access" suffix="log" pattern="common"
rotateable="false" resolveHosts="false" />
答案 3 :(得分:2)
Tomcat中默认JULI日志记录的魔术属性是“可循环”的。 通常,有两个地方在默认安装中定义了日志记录:logging.properties和服务器配置(server.xml)。
对于logging.properties,您应该使用: 1catalina.org.apache.juli.FileHandler.rotatable = false
对于服务器配置,它看起来像这样:
&lt; Valve className =“org.apache.catalina.valves.AccessLogValve”directory =“prefix =”access_log“suffix =”。txt“rotating =”false“pattern =”%h%l%u%t“ %r“%s%b”/&gt;
请查看此处了解更多详情:
http://tomcat.apache.org/tomcat-7.0-doc/config/valve.html#Access_Log_Valve
答案 4 :(得分:2)
对你的直接问题更合适的答案是布尔&#34; renameOnRotate&#34;。假设您需要每日记录,但不想要时间戳。这将根据前缀/后缀命名文件,并在日志文件旋转后将时间戳附加到日志文件中:
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access" suffix=".log" renameOnRotate="true"
pattern="%a %A %h %H %l %m %t %u %U "%r" %s %b " resolveHosts="false" />
答案 5 :(得分:2)
在Tomcat 7上应该很容易:see this docs
默认情况下,可旋转日志将显示活动访问日志文件名 包含fileDateFormat中的当前时间戳。在旋转期间 文件已关闭,名称中包含下一个时间戳的新文件 创建和使用。将renameOnRotate设置为true时,时间戳 不再是活动日志文件名的一部分。仅在轮换期间 文件已关闭,然后重命名以包含时间戳。这是 类似于基于时间的大多数日志框架的行为 回转。默认值:false
答案 6 :(得分:1)
Tomcat的日志记录受<Valve>
配置元素的约束,通常位于server.xml
或context.xml
。这些允许您控制数据后缀等内容。
Here's the docs for the access log value,我假设你是localhost.2010-12-22.log
的意思。不确定catalina.out
,但必须使用类似的机制。
答案 7 :(得分:0)
答案引用&#34; renameOnRotate&#34;错了。这仅适用于访问日志,而不适用于&#34; main&#34;记录(这是问题所需要的,因为他引用了#localhost&#39; log。
如果你需要两个日志轮换而不是时间戳(通常是这种情况),坏消息是tomcat不可能开箱即用:(
在这种情况下,最好的解决方案是将其配置为全局使用log4j,这样更灵活,并允许您以这种方式进行设置。
答案 8 :(得分:0)
我知道这很旧,但是对于使用logrotate.d的完整示例,请记住用您的tomcat版本替换。您必须同时编辑server.xml和logging.properties,然后编辑/创建logrotate配置。另外,您的配置文件路径可能不同。
logrotate配置:
vi /etc/logrotate.d/tomcat<version>
/var/log/tomcat<version>/catalina.out
{
daily
rotate 12
compress
copytruncate
create 640 tomcat adm
}
/var/log/tomcat<version>/*.log
{
daily
rotate 12
compress
copytruncate
missingok
sharedscripts
postrotate
if invoke-rc.d tomcat<version> status > /dev/null 2>&1; then \
invoke-rc.d tomcat<version> restart > /dev/null 2>&1; \
fi;
endscript
}
server.xml配置:我还删除了_log。从前缀开始,因此变成localhost_access.log
vi /var/lib/tomcat<version>/conf/server.xml
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access" suffix=".log" rotatable="false"
pattern="%h %l %u %t "%r" %s %b" />
logging.properties配置:
vi /var/lib/tomcat<version>/conf/logging.properties
1catalina.org.apache.juli.FileHandler.level = FINE
1catalina.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
1catalina.org.apache.juli.FileHandler.prefix = catalina.
1catalina.org.apache.juli.FileHandler.suffix = log
1catalina.org.apache.juli.FileHandler.rotatable = false
2localhost.org.apache.juli.FileHandler.level = FINE
2localhost.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
2localhost.org.apache.juli.FileHandler.prefix = localhost.
2localhost.org.apache.juli.FileHandler.suffix = log
2localhost.org.apache.juli.FileHandler.rotatable = false
3manager.org.apache.juli.FileHandler.level = FINE
3manager.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
3manager.org.apache.juli.FileHandler.prefix = manager.
3manager.org.apache.juli.FileHandler.suffix = log
3manager.org.apache.juli.FileHandler.rotatable = false
4host-manager.org.apache.juli.FileHandler.level = FINE
4host-manager.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
4host-manager.org.apache.juli.FileHandler.prefix = host-manager.
4host-manager.org.apache.juli.FileHandler.suffix = log
4host-manager.org.apache.juli.FileHandler.rotatable = false