【发布时间】:2013-05-23 20:10:46
【问题描述】:
我使用 log4j2,我想为我的所有消息添加一个前缀。这个前缀被传递给构造函数参数,它取决于类的实例。所以我们处于对象级别(不是类或线程)。
例如,我有一个A 类实例化为new A(152),所以当我在这个类上使用log.error("message") 时,152: 就写在消息之前。对于new A(155),将改为显示155:。
感谢您的帮助
【问题讨论】:
-
如果log4j2支持MDC你可以放在那里。
-
好建议。它确实支持MDC
-
感谢它与 log4j2 中的 ThreadContext 一起使用
-
一个键可以放多个值吗?
-
最后我创建了一个实现 MessageFactory 的类 LogMessage 并用前缀连接消息。在我创建像这样
private Logger logger = LogManager.getLogger("MyClass", new LogMessage(prefix));这样的记录器之后,它就可以工作了