java Log4j2:基于用户的日志文件的动态创建
这是我的场景: 我想记录用户从登录到注销的所有活动。每个日志都需要根据用户名和日期存储在一个文件中,日志文件看起来像“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。在登录方法中放置以传递密钥名,在注销方法中移除
public string userlogin()
{
{codes}.
ThreadContext.put("keyname", User.getusername());
{codes}.
logger.trace("Login Success");
return value;
}
问题: 痕迹。日志文件附加了所有跟踪,但用户的单个文件并没有在基于用户的日志文件(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”中。这些日志还附加了一些活动,只有在这两个文件中都没有附加日志时
伙计们帮帮我,这个配置有错误吗?我是这个日志平台的新手。我使用互联网上的样本和示例准备了日志配置。 有没有其他适合我的日志平台,请建议我
共 (0) 个答案