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