Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从tomcat日志中删除日期模式_Tomcat_Logging - Fatal编程技术网

如何从tomcat日志中删除日期模式

如何从tomcat日志中删除日期模式,tomcat,logging,Tomcat,Logging,默认情况下,Tomcat将日期附加到日志文件中,例如localhost.2010-12-22.log和catalina日志。我不想要日志文件中的日期,我似乎找不到如何删除它。日志记录文档没有提到任何关于日期模式的内容。非常感谢您的任何想法 Tomcat的日志记录由配置元素控制,通常在server.xml或context.xml中。这些允许您控制数据后缀之类的内容 ,我想这就是您所说的localhost.2010-12-22.log。不确定catalina.out,但必须使用类似的机制。您链接到的

默认情况下,Tomcat将日期附加到日志文件中,例如localhost.2010-12-22.log和catalina日志。我不想要日志文件中的日期,我似乎找不到如何删除它。日志记录文档没有提到任何关于日期模式的内容。非常感谢您的任何想法


Tomcat的日志记录由
配置元素控制,通常在
server.xml
context.xml
中。这些允许您控制数据后缀之类的内容


,我想这就是您所说的
localhost.2010-12-22.log
。不确定catalina.out,但必须使用类似的机制。

您链接到的文档用于在应用程序中进行日志记录,而不是Tomcat服务器本身进行日志记录。如另一个答案中所述,适当的文档是。在Ubuntu服务器系统上,您需要更改/etc/tomcat7/Server.xml中的设置。此文件可能位于系统上的其他位置

类似的配置将阻止Tomcat将日期放在日志文件名中,但也会阻止Tomcat旋转访问日志,除非为服务器设置适当的logrotate配置,否则这可能是个坏主意

<Valve className="org.apache.catalina.valves.AccessLogValve"
      directory="logs"  prefix="http_access" suffix="log"  pattern="common" 
      rotateable="false" resolveHosts="false" />

在很大程度上是正确的,但它有一个字母的拼写错误。在conf/server.xml中找到类似的配置

<Valve className="org.apache.catalina.valves.AccessLogValve"
      directory="logs"  prefix="http_access" suffix="log"  pattern="common" 
      rotatable="false" resolveHosts="false" />


请注意rotatable=“false”属性。

Tomcat中默认JULI日志记录的magic属性是“rotatable”。 通常在默认安装中有两个位置定义日志记录:logging.properties和服务器配置(server.xml)

对于logging.properties,您应该使用以下内容: 1catalina.org.apache.juli.FileHandler.rotatable=false

对于服务器配置,如下所示:


其他答案对我帮助不大,尽管托马斯的答案最接近。我找到的文件是:

因此,我在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

对于您的直接问题,更合适的答案是布尔“重命名旋转”。假设您需要每日日志记录,但不需要时间戳。这将根据前缀/后缀命名文件,并在日志文件旋转后将时间戳附加到日志文件:

<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 &quot;%r&quot; %s %b " resolveHosts="false" />

这在Tomcat 7上应该很容易做到:

重命名旋转属性 默认情况下,对于可旋转日志,将显示活动访问日志文件名 以fileDateFormat包含当前时间戳。在旋转过程中 文件将关闭,并且将创建名称中带有下一个时间戳的新文件 创建和使用。将renameOnRotate设置为true时,时间戳 不再是活动日志文件名的一部分。仅在旋转期间 关闭文件,然后重命名以包含时间戳。这是 与大多数日志框架在执行基于时间的操作时的行为类似 轮换。默认值:false

引用“重命名”的答案是错误的。这只适用于访问日志,而不适用于“主”日志(这是问题想要的,因为他引用了“localhost”日志)

如果您既需要日志旋转,又不需要时间戳(通常情况下是这样),那么坏消息是tomcat不可能开箱即用:(


在这种情况下,最好的解决方案是将其配置为全局使用log4j,这更灵活,并允许您以这种方式进行设置。

我知道这很旧,但对于使用logrotate.d的完整示例,请记住替换为tomcat版本。您必须编辑server.xml和logging.properties,然后编辑/创建logrotate c此外,配置文件的路径可能不同

日志旋转配置:

vi /etc/logrotate.d/tomcat<version>

我看到了,但这不是访问日志。localhost日志包含webapp日志(例如spring未能加载)。catalina日志包含tomcat错误(例如web.xml格式错误)。这与我在Tomcat 7.0.64上的设置类似,
logging中的
fileDateFormat
renameOnRotate
。属性
文件没有区别,就好像忽略了这些属性一样。例如,如果我添加了行
1catalina.org.apache.juli.FileHandler.renameOnRotate=true
,日志文件仍然有日期在名称中,它在修改logging.properties时对我不起作用,但在修改server.xml中的阀属性时起作用。Tomcat 8.5中的AsyncFileHandler也支持这些属性。localhost日志是访问日志,即这些日志是Web服务器日志(Tomcat)。
/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
}
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 &quot;%r&quot; %s %b" />
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