SLF4J(下面的log4j) - 在记录器创建中注入运行时参数?

时间:2014-04-18 15:03:14

标签: log4j slf4j

我有一个操作线程,我希望记录如下:

id =绑定到在运行时已知的“会话”(不是100%,但主要是会话是特定线程上的所有内容)

KEY =与特定包绑定的值,可能只是为每个包/密钥创建不同的格式化模式

12:12:12,123 [INFO] [id] KEY > Something informative
12:12:13,123 [INFO] [id] KEY > Something informative
12:12:14,123 [ERROR] [id] KEY > OMG IT BROKE!
12:12:15,123 [INFO] [id] KEY > Something informative

我已经有了SLF4J日志记录,但我得到的是经典风格:

19:18:41,491 INFO  [com.package.package.Class] (ThreadName) Something Informative
19:18:42,491 INFO  [com.package.package.Class] (ThreadName) Something Informative

我意识到我可以在log4j / logback /的任何适当的/ xml文件中为我之后的类创建不同的格式;但是,我不知道如何注入只在运行时知道的[id]值。

有没有办法用SLF4J“正确”执行此操作,或者我是否需要在运行时创建自己的Log4J Logger实例并将我的代码耦合到log4j(我已经非常努力不去做)。

1 个答案:

答案 0 :(得分:1)