问题标签 [mdc]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1902 浏览

java - MDC 在日志文件中记录错误的会话 ID

我们使用 MDC 记录所有带有 session Id 的事务,但有时它会附加错误的 sessiond

我正在筛选过滤器中的 sessionId

日志输出

正如您所看到的,恢复的 sessionId 请求何时正确,以及何时记录响应时附加了错误的 sessionId,但两个日志的线程相同。

根据 MDC “MDC 是按线程管理的”

我做错了什么吗?

0 投票
1 回答
722 浏览

java - 请求 ID 未登录移动到 log4j 1.2 的 async-appender

到目前为止,我有一个使用 log4j1.2 同步记录的 Web 应用程序。我正在尝试将其移动以使用 async-appender(来自 log4j 1.2)。我编写了一个 XML 文件 - log4j.xml 来初始化 async-appender。但是,当我检查日志时,我发现请求的 ID 没有被记录(尽管到目前为止它曾经被记录)。经过一番调查,我认为请求 ID 的(键,值)对不再存在于 MDC 中。

  1. 那是因为 async-appender 是一个单独的线程并且没有继承与主应用程序线程相同的键值对吗?
  2. 有没有办法可以在 MDC 中设置这些值,以便应用程序再次开始记录请求 ID?

log4j.xml 文件供参考:

0 投票
1 回答
605 浏览

logback - Logback MDC 在运行时打印变量

我想知道是否可以从记录器调用中打印先前添加的 MDC 值?

例子:

而不是将其添加到布局模式中。

原因是我在其他地方调用 MDC 并在逻辑结束时记录,但我想有条件地记录不同的值。我知道解决方法可能是不同的附加程序。

0 投票
2 回答
1010 浏览

logging - 如何在非 Akka 部件调度的日志事件中提供可用的 sourceThread 和 akkaTimestamp 值?

我们的 Akka 项目依赖于其他一些非 akka 代码。在这段代码中,我们获取记录器的方法是调用org.slf4j.LoggerFactory.getLogger(ThisClass.class)

我希望在日志打印中包含事件发生的时间和地点的实时真实线程,因此我获取akkaTimestampsourceThread的值,如下所示:

问题是这些从 MDC 中提取的值在从非 akka 记录器发送的打印中不可用。

他们在这里

在应用程序的非 Akka 部分中也使用 sourceThread MDC 值可能是一个好主意,以便在日志中始终使用此属性。

但他们从不说如何/:

0 投票
1 回答
2786 浏览

scala - AKKA 中的 MDC(映射诊断上下文)日志记录

我想在我的 AKKA 应用程序上实现 logback MDC 日志记录,以组织并拥有更多信息日志;但是,我还读到 MDC 可能不适用于 AKKA,因为 AKKA 具有异步日志记录系统(MDC 可能存储在不同的线程上)。我使用了此处定义的用于 MDC 日志记录的自定义调度程序,希望能解决我的问题,但我无法让它在我的应用程序上运行。我的应用程序不是一个播放框架应用程序。

我有一个RequestHandlerActor 接收不同类型的请求并将其委托给RequestSpecificHandler将处理它的 Actor。

在我的RequestSpecificHandlerActors 中,我还创建新的或引用其他现有的HelperActors

每次我发送请求时,日志记录都会有所不同,有时它会使用正确的 MDC messageId 和 requestType 进行记录,有时它没有任何值。即使"FIRST LOG Received a RequestA"日志以这种方式运行,我认为它应该始终具有正确的日志戳,因为它在我调用的同一类中MDC.put

这是我的application.conf:

如何在某个请求期间执行的所有代码日志(包括依赖库日志)都具有相同的 messageId、requestType 日志戳的情况下进行 MDC 日志记录?除了 AKKA 的自定义调度程序之外,还有其他方法可以做到这一点吗?另外,什么是更有条理的声明MDC.putMDC.remove编码方式?现在我在收到的每个案例上都有它。

谢谢

0 投票
2 回答
886 浏览

java - log4j 1.2.17 + MDC + UDP

我有一个使用带有 MDC 的 log4j 1.2.17 的应用程序。我设法org.apache.log4j.net.SocketAppender使用 TCP 协议配置远程日志记录:

现在我想切换到 UDP 协议。我切换到org.apache.log4j.net.SyslogAppender,但SyslogAppender不支持 MDC(以结构化方式)。我知道 MDC 在 log4j2 中有更多支持,有没有办法在 log4j 1.2.* 中使用 UDP 公开 MDC 的日志记录?

0 投票
0 回答
1107 浏览

elasticsearch - 如何使用elasticsearch在logstash中对mdc字段进行索引或分析?

我使用 SocketAppender 向连接到 elasticsearch 的 logstash 报告日志事件。我使用 MDC 记录了一些应用程序上下文信息。我希望通过 MDC 字段过滤事件。如何使用elasticsearch在logstash中对mdc字段进行索引或分析?

例如:我写:MDC.put("email", "11111@example.com")在我的java代码中。我想搜索email:11111@example.com与电子邮件字段匹配的事件。但是现在,返回的结果也匹配了example

0 投票
0 回答
1783 浏览

slf4j - Logback :对不同的标记使用不同的模式

我正在开发的软件将 MDC 用于特定数据(用户名、IP、执行时间等)。我希望一些日志使用某些 MDC 使用特定模式,而一些日志使用其他 MDC 使用另一种模式。

我认为标记可以完成这项工作,我设置了不同的标记,比如说: PROFILE_MARKER - 用于配置文件日志 AUDIT_MARKER - 用于审计日志

我的 logback.xml 配置文件中有 3 个附加程序,一个用于我的标记,一个用于所有其他日志:

我觉得我做错了,我应该只使用一个附加程序,并且可能使用不同的过滤器。但是我不知道怎么做。也许标记不是这里的解决方案?

任何帮助将不胜感激。

0 投票
1 回答
307 浏览

java.util.logging - 从 MDC 到日志的附加信息 (java.util.logging)

是否有可能将 MDC 添加到 java.util.logging ?

如果是,如何到达?

0 投票
1 回答
678 浏览

spring - 使用 Spring AMQP 请求/回复保留 MDC

我有两个服务,A 和 B,通过Spring Remoting 与 AMQP进行通信。UUID.randomUUID()A 公开一个 REST API 并在每个请求上(从 a 内)填充 MDC(映射诊断上下文)Filter(并在处理完成时清除它)。现在我想在请求/回复周期中将此 UUID 传递给 B,以便...

  1. ...当 B 中的消费者开始处理请求时,其 MDC 将填充 UUID。
  2. ...当 B 中的消费者完成处理请求时,其 MDC 被清除。

我已经扩展SimpleMessageConverter以设置一个包含 UUID 的 AMQP 标头,但我似乎并没有真正弄清楚如何/在哪里填充以及如何/在哪里清除 B 中的 MDC。有人可以解释一下吗?