【发布时间】:2016-06-01 14:03:48
【问题描述】:
我将 log4j 2.5 用于 Tomcat Web 应用程序日志记录。有两个应用程序服务器都写入网络路径上的同一个日志文件。
我的日志文件越来越大,因为每一天的日志文件都包含前几天的所有条目。
例如,myLog-2016-06-01.log 包含从 5-20(实施日)到 06-01 的所有日志记录,而 myLog-05-31 包含从 5-20 到 5- 的所有日志31,以此类推……
我假设我对 XML 配置文件的工作方式有些不理解。
来自 log4j2.xml 的相关信息如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="trace">
<Appenders>
<RollingRandomAccessFile name="RollingFileLogger"
fileName="[...]\myLog.log"
filePattern="[...]\myLog-%d{yyyy-MM-dd}.log">
<PatternLayout pattern="%n %n %d ${hostName} %p %c: %msg"/>
<Policies>
<TimeBasedTriggeringPolicy/>
</Policies>
<DefaultRolloverStrategy max="10"/>
</RollingRandomAccessFile>
<Console name="ConsoleLogger" target="SYSTEM_OUT">
<PatternLayout pattern="%d{HH:mm:ss} [%t] %-5level %logger{36} - %msg%n"/>
</Console>
</Appenders>
<Loggers>
<Root level="trace">
<AppenderRef ref="RollingFileLogger"/>
<AppenderRef ref="ConsoleLogger"/>
</Root>
</Loggers>
【问题讨论】:
-
“有两个应用程序服务器都写入网络路径上的同一个日志文件” - 这可能是问题所在。您需要使用一些特殊的 appender 将多个应用程序同时写入一个日志,例如
SocketAppender或SyslogAppender。 -
我会调查这些,谢谢。我还将尝试单独的文件(而不是在本地文件系统上),以确认这是我唯一的问题。
-
这就是问题所在。那么,我将尝试设置一个 SocketAppender。
标签: java tomcat logging log4j2