在 log4j2 中从 ThreadContext 设置和获取值

Posted

技术标签:

【中文标题】在 log4j2 中从 ThreadContext 设置和获取值【英文标题】:Setting & Getting Values from ThreadContext in log4j2 【发布时间】:2013-05-17 09:06:07 【问题描述】:

我在我的网络应用程序中使用 log4j-api-2.0-beta4.jar 和 sl4j。 我正在尝试将一些值插入 ThreadContext。

ThreadContext.put("user",userName);           ThreadContext.put("thread",thread);
ThreadContext.put("url",url);

我为获取 ThreadContext 所做的只是导入类。

在课程结束时,我正在做以下事情:

ThreadContext.clear();

我在 log4j2.xml 中使用的模式布局是:

<RollingFile name="Default" fileName="$logDir/$filePrefix.log"
                 filePattern="$logDir/$filePrefix/$filePrefix.log.gz">
      <PatternLayout pattern="%d %-5p [%t] %37c %Xuser %x %m%n"/>
      <Policies>`enter code here`
        <SizeBasedTriggeringPolicy size="10MB"/>
      </Policies>
    </RollingFile>

作为 %Xuser 的一部分,我没有得到任何价值,%x 给了我 []。 我需要在我的日志文件中获取这些值。 请帮忙!!!

【问题讨论】:

【参考方案1】:

好的。我自己想通了。

这是因为流程根本没有到达那部分代码;)。

对不起,麻烦各位了,不过还是谢谢。

【讨论】:

以上是关于在 log4j2 中从 ThreadContext 设置和获取值的主要内容,如果未能解决你的问题,请参考以下文章

Log4j2之ThreadContext

即使在使用 Vert.x 和 Log4j2 将“isThreadContextMapInheritable”设置为 true 后也没有获取 ThreadContext 值

log4j 中“ThreadContext”的替代方案

log4j2 isThreadContextMapInheritable 属性用法

Log4net threadContext 与 IIS 中托管的 WCF 一起使用是不是安全?

GetThreadContext 返回 EBP = 0