这是我的方案: 我想记录用户从登录到注销时的所有活动。每个日志需要根据附加日期的用户名存储在一个文件中,日志文件将如下所示“sam-2015-08-12.log”。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xml>
<Configuration status="WARN" name="PBMobile">
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" />
</Console>
<RollingFile name="error-log" append="true" fileName="D:/applog/error.log"
filePattern="C:/applog/error-%d{yyyy-MM-dd}.log">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" />
<Policies>
<TimeBasedTriggeringPolicy interval="1"
modulate="true" />
<SizeBasedTriggeringPolicy size="250 MB" />
</Policies>
</RollingFile>
<RollingFile name="trace-log" append="true" fileName="D:/applog/trace.log"
filePattern="D:/applog/trace-%d{yyyy-MM-dd}.log">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" />
<SizeBasedTriggeringPolicy size="512 MB" />
</RollingFile>
<Routing name="RoutingAppender">
<Routes pattern="$${ctx:keyname}">
<Route>
<RollingFile name="Rolling-${ctx:keyname}"
fileName="D:/applog/${ctx:keyname}-${date:yyyy-MM-dd}.log"
filePattern="D:/applog/${date:yyyy-MM}/%d{yyyy-MM-dd}-%i.log.gz">
<PatternLayout
pattern="%d{ABSOLUTE} %level{length=5} [%thread] %logger{1} - %msg%n" />
<Policies>
<TimeBasedTriggeringPolicy interval="6"
modulate="true" />
<SizeBasedTriggeringPolicy size="10 MB" />
</Policies>
</RollingFile>
</Route>
<Route ref="Console" key="${ctx:keyname}" />
</Routes>
</Routing>
</Appenders>
<Loggers>
<Root level="trace" additivity="false">
<Appender-Ref ref="Console" level="trace" />
<Appender-Ref ref="trace-log" level="trace" />
<Appender-Ref ref="error-log" level="error" />
<Appender-Ref ref="RoutingAppender" />
</Root>
</Loggers>
</Configuration>
我使用Threadcontext.put在登录方法期间传递keyname并在logout方法中删除
public string userlogin()
{
{codes}.
ThreadContext.put("keyname", User.getusername());
{codes}.
logger.trace("Login Success");
return value;
}
问题: trace.log文件附加了所有跟踪,但用户的单个文件未在基于用户的日志文件(sam-2015-08-12.log)中附加该特定用户活动的日志详细信息。
只有一行附加了单独的日志文件(sam-2015-08-12.log)
19:15:24,112 TRACE [http-nio-9090-exec-5] Userlogin - Login Success
如果第二个用户同时登录该应用程序,则为第二个用户创建“mark-2015-08-12.log”文件,然后将第二个用户的日志详细信息附加到第一个用户日志文件“sam” -2015-08-12.log”。这些日志也只附加少数活动,然后两个文件都没有附加日志。
伙计们帮帮我,这个配置有什么错误吗?我是这个日志记录平台的新手。我使用来自互联网的示例和示例准备了日志记录配置。 是否有其他适合我要求的测井平台,请建议我......