一个初学者的log4J问题

时间:2010-05-29 11:18:33

标签: java log4j

我在转换模式中将log4j配置为基本用途: -

log4j.appender.rollingFile.layout.ConversionPattern=%p %t %c - %m%n

但现在我想记录发生错误的类名以及用户名(在会话对象中可用)以及该事件发生的日期和时间。我该怎么做呢?我需要在格式字符串中进行哪些更改?

提前致谢:)

2 个答案:

答案 0 :(得分:1)

查看PatternLayout文档,了解您想要的大部分内容。

您面临的问题是从会话中获取用户名(Log4j无法自动执行此操作)。我可能会调查NDCsMDCs,并从会话中填充这些(可能在servlet过滤器中?)。它们是每线程,因此假设您的用户具有相同的范围,那么这可能有所帮助。

答案 1 :(得分:1)

要获取类名,可以使用%l,但是你会受到一些性能影响。 要获取用户名,您需要使用mapped or nested diagnostic context,然后在模式字符串中分别指定%X或%x。

检查PatternLayout javdocs。