这是我的方案: 对于我的网站,我使用 log4j2 来滚动日志文件。目前我正在生成3个日志文件,其中包含2个滚动文件(trace& error)和1个路由追加器。
1)整个日期的跟踪日志(滚动文件追加器)
2)整个日期的错误日志(滚动文件追加器)
3)记录整天的用户活动日志(路由文件追加器)
以下是我的 log4j2.xml ,用于上述方案,完全符合要求。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xml>
<Configuration status="WARN" name="mywebsite" monitorInterval="30">
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout
pattern="[%-5level] [%d{yyyy-MM-dd HH:mm:ss.SSS}] [%logger{1}] - %msg%n" />
</Console>
<RollingFile name="error-log" append="true"
fileName="D:/client/error [${date:yyyy-MM-dd}].log" filePattern="D:/lient/error-%d{yyyy-MM-dd}.log">
<PatternLayout
pattern="[%-5level] [%d{yyyy-MM-dd HH:mm:ss.SSS}] [%logger{1}] - %msg%n" />
<Policies>
<TimeBasedTriggeringPolicy interval="1" modulate="true" />
<SizeBasedTriggeringPolicy size="250 MB" />
</Policies>
</RollingFile>
<RollingFile name="trace-log" append="true"
fileName="D:/client/trace [${date:yyyy-MM-dd}].log" filePattern="D:/client/trace-%d{yyyy-MM-dd}.log">
<PatternLayout
pattern="[%-5level] [%d{yyyy-MM-dd HH:mm:ss.SSS}] [%logger{1}] - %msg%n" />
<Policies>
<TimeBasedTriggeringPolicy interval="1" modulate="true" />
<SizeBasedTriggeringPolicy size="250 MB" />
</Policies>
</RollingFile>
<Routing name="RoutingAppender">
<Routes pattern="$${ctx:logFileName}">
<Route>
<RollingFile name="Rolling-${ctx:logFileName}" append="true"
fileName="D:/userlog/${ctx:logFileName}~${date:yyyy-MM-dd}.log"
filePattern="D:/userlog/${date:yyyy-MM}/%d{yyyy-MM-dd}-%i.log.gz">
<PatternLayout
pattern="[%-5level] [%d{yyyy-MM-dd HH:mm:ss.SSS}] [%logger{1}] - %msg%n" />
<Policies>
<TimeBasedTriggeringPolicy interval="1" modulate="true" />
<SizeBasedTriggeringPolicy size="512 MB" />
</Policies>
</RollingFile>
</Route>
<Route ref="Console" key="${ctx:logFileName}" />
</Routes>
</Routing>
</Appenders>
<Loggers>
<Root level="trace" additivity="false">
<Appender-Ref ref="Console"/>
<Appender-Ref ref="trace-log" level="trace" />
<Appender-Ref ref="error-log" level="error" />
<Appender-Ref ref="RoutingAppender" />
</Root>
</Loggers>
</Configuration>
我是log4j的新手,我以某种方式设法从互联网上的来源配置log4j xml。 滚动文件是为每天创建的,并为每个用户创建文件追加器,并在相应的文件中捕获整个日期的相应事件,直到第二天推出新文件。
问题是:
当新文件滚动时,在前一天的日志文件中添加了当天的几个事件。
例如,11月1日的 trace.log 文件中包含11月2日的几个日志事件(比如大约5-10行)。
这也适用于文件追加器。
例如,文件追加器将根据用户日志生成日志文件,例如昨天创建的名为 john-01-112015.log 的日志文件。并且在11月2日相同的用户日志将根据配置推出新文件。但是,如上一个场景中所述, john-01-112015.log 中添加了11月2日的少量日志。
log4j2.xml有什么问题吗?伙计们帮助我解决这个问题。