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

SLF4J(下面是log4j)-将运行时参数注入记录器创建?,log4j,slf4j,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 I

我有一个操作线程,我希望这样记录:

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/whatever-properites/xml文件中为我要找的类创建不同的格式;但是,我不知道如何注入只有在运行时才知道的[id]值


是否有一种方法可以“正确”使用SLF4J实现这一点,或者我是否需要在运行时创建自己的Log4J Logger实例,并将我的代码与Log4J相耦合(我已尽力避免这样做)。

因此,这就是我想要的:

看起来log4j有类似的可用上下文:

SLF4J在这里有支持: