【问题标题】:A beginner's log4J question一个初学者的 log4J 问题
【发布时间】:2010-05-29 11:18:33
【问题描述】:

我使用转换模式为基本目的配置了 log4j:-

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

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

提前致谢:)

【问题讨论】:

    标签: java log4j


    【解决方案1】:

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

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

    【讨论】:

    • 嗨,Brian,我应该直接在我们传递的用户消息(自定义消息)中指定用户名,而不是使用 MDC 或 NDC?
    • 如果你能做到,是的。但是您是否需要将它传递给每个需要包含该信息的日志消息的方法?
    【解决方案2】:

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

    查看PatternLayout javdocs。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-04
      • 2020-11-23
      • 2015-03-16
      • 2012-04-15
      相关资源
      最近更新 更多