我在转换模式中将log4j配置为基本用途: -
log4j.appender.rollingFile.layout.ConversionPattern=%p %t %c - %m%n
但现在我想记录发生错误的类名以及用户名(在会话对象中可用)以及该事件发生的日期和时间。我该怎么做呢?我需要在格式字符串中进行哪些更改?
提前致谢:)
答案 0 :(得分:1)
查看PatternLayout文档,了解您想要的大部分内容。
您面临的问题是从会话中获取用户名(Log4j无法自动执行此操作)。我可能会调查NDCs或MDCs,并从会话中填充这些(可能在servlet过滤器中?)。它们是每线程,因此假设您的用户具有相同的范围,那么这可能有所帮助。
答案 1 :(得分:1)
要获取类名,可以使用%l,但是你会受到一些性能影响。 要获取用户名,您需要使用mapped or nested diagnostic context,然后在模式字符串中分别指定%X或%x。
检查PatternLayout javdocs。