为什么Tomcat7会在ec2安装中复制/ var / log / messages中的所有日志

时间:2014-10-03 19:47:01

标签: amazon-ec2 log4j tomcat7

我有一个使用log4j而不是slf4j的Jersey应用程序,该应用程序有自己的log4j.xml文件,用于配置一个appender:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<appender name="dailyRollingFile" class="org.apache.log4j.DailyRollingFileAppender">
    <param name="File" value="${catalina.base}/logs/this-app.log" />
    <param name="Append" value="true" />
    <param name="DatePattern" value="'.'yyyy-MM-dd" />
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%d{ISO8601} [%t] %-5p %c - %m%n" />
    </layout>
</appender>

<root>
    <level value="${this-app.log.severity.all}" />
    <appender-ref ref="dailyRollingFile" />
</root>

应用程序在ec2中运行,典型的tomcat 7安装,通常我的意思是我们从未在容器级别添加任何特殊配置以进行日志记录。

一切正常,每天都会在$ {catalina.base} / logs文件夹中创建和滚动日志文件。

然而,最近有人发现我们所有的日志也出现在文件中:

/var/log/messages

我阅读了Tomcat 7文档但找不到该文件的引用,我不希望我的日志被复制。

修改

发现它不仅复制我的应用程序日志条目,而且还复制服务器中的所有日志,如catalina.out,localhost_access日志等。进入单个文件/ var / log / messages,每天根据日期滚动

1 个答案:

答案 0 :(得分:0)

不确定这是否有帮助,但使用systemd的EC2实例(例如CentOS 7)?如果是这样,可以使用journald抓取日志文件。

我们在这里遇到了类似的问题,并决定停止使用控制台日志进行应用程序日志记录。

您可以使用journalctl -f -u tomcat来获取曾经出现在catalina.out中的内容。

信息的几个链接:

https://bugzilla.redhat.com/show_bug.cgi?id=1048608

https://wiki.archlinux.org/index.php/Tomcat#Logging