问题标签 [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.
logging - 在 log4j 中记录用户名
我需要在日志中打印用户名和客户端 IP 地址。但用户名仅打印在 log4j 中使用 MDC 的第一个线程。从下一个线程开始,值打印为空。任何人都可以建议如何在这方面进一步进行。
logging - MDC 不适用于 SLF4J
我们使用 SLF4J(带有 log4j)作为我们的日志框架。我们正在尝试利用 Log4j 支持的在线文档的 MDC 功能。
使用 SLF4J 时,MDC 不起作用。但是,当使用 log4j 时,它工作得非常好。文档说明只要底层框架支持 MDC,SLF4J 就应该支持。
我们正在使用 SLF4J 1.6.4(slf4j-api
,slf4j-log4j12
并且slf4j-simple
已作为依赖项添加到我们的pom.xml
)中。
某处是否存在差异/不匹配?我们是否缺少任何依赖项?任何输入将不胜感激。
java - EJB3 相关标识
现在我的同事正在研究日志子系统,他们想绑定从某种业务方法启动的单独操作。例如,如果 bean A 中的方法调用 bean B 中的某个方法,然后调用 bean C 中的某个方法,那么知道 bean B 中的业务方法和 bean C 为 bean A 中的方法做了一些工作人员会很棒。尤其是知道 B 和 C 的方法为 bean A 的具体调用做了一些工作单元。
那么,问题是如何将这些工作单元与整体联系起来?显然,使用方法参数进行绑定并不美观!
而且我认为是时候问另一个问题了,这个问题与前一个问题足够接近。如果我想将一些上下文信息从 bean A 传播到另一个从 A 调用的 bean,该怎么办?诸如安全凭证和安全主体之类的东西?我能做些什么?可能是我问的问题是某种不好的做法?
java - 请求跟踪记录器
我被困在跟踪请求上。获取组件名称和时间很容易(使用面向方面的编程)但我没有请求的ID(requestID)
我需要这样的日志:
RequestID 组件名称 时间
- Add547 C4 5s
- 搜索547 C1 5s
- 搜索778 C1 2s
- Add547 C1 15s
- 搜索778 C4 20s
- 搜索547 C5 10s
- 搜索547 C3 2s
- 搜索547 C2 1s
- 搜索778 C2 12s
- 搜索547 C6 55s
- 搜索778 C6 1s
- Add547 C2 6s
- Add547 C3 46s
为了轻松接收这样的文件,这正是我正在寻找的:
RequestID 组件名称 时间
- 搜索547 C1 5s
- 搜索547 C5 10s
- 搜索547 C3 2s
- 搜索547 C2 1s
- 搜索547 C6 55s
RequestID 组件名称 时间
- 搜索778 C1 2s
- 搜索778 C4 20s
- 搜索778 C2 12s
- 搜索778 C6 1s
RequestID 组件名称 时间
- Add547 C4 5s
- Add547 C1 15s
- Add547 C2 6s
- Add547 C3 46s
我所有的研究都引导我将 log4j 与 MDC 和 SiftingAppender 一起使用,但我不确定它是否可以在整个请求中提供唯一 ID,因为它经过了很多类、子系统和线程。
你能告诉我是否可以在不改变原始系统的情况下完成?(它应该是一个外部组件)。你知道有什么教程可以说明如何做到这一点吗?
logging - 基于设备 MAC/IP 的 log4j 日志记录
我有一个 Java API 库。该库旨在测试设备的功能。后来这些库被公开为 web 服务,以便非 java 程序也可以访问它。我有一个包含 bean 和依赖库的 EAR,这个 EAR 部署到 weblogic 服务器中。
同时,我们正在为来自多个代理机器的多个设备以及来自库并在 weblogic 控制台日志文件中捕获的所有日志测试这些 web 服务。我已经在 weblogic 服务器中配置了 log4j。现在我面临的问题是,我无法区分这些日志来自哪些设备/IP。
根据设备 MAC/IP 识别日志的更好方法是什么?我用谷歌搜索并得到了 log4j MDC 之类的输入,可以用于这个应用程序。由于我没有编写任何 servlet,我不确定是否可以继续使用 MDC。
请指导我选择配置每个 MAC/IP 日志的最佳方式。
java - logback 在 appender 中打印完整的 MDC
在 a 的 appender 中logback.xml
是否可以执行任何操作,例如遍历 MDC、打印整个 MDC 等?我能想到的最简单的方法基本上是通过 java/groovy 代码(我还没有研究过如何去做),想知道是否有速记。
logging - 日志查看器 - MDC 支持
我正在尝试为 log4j 生成的支持 MDC 的纯文本文件查找日志查看器。我看过一些像 Chainsaw、LogSaw、Otros 但他们似乎只支持 NDC。
谁能指出我正确的方向?
java - slf4j 总是使用 NOPMDCAdapter
我使用 slf4j 登录我的项目。我想使用 MDC 来记录用户 ID 参数。所以我检查了教程和文档,并制作了如下代码:
userId 实际上是一个字符串。
我使用我常用的 log4j xml 和 appenders 等属性。添加 %X{key} 但没有任何反应。我根本看不到任何代替 %X{key} 的东西,但是 %-5p 或 %c 等其他参数效果很好。
所以我用调试来观察 MDC.put() 方法中发生了什么,并发现在 MDC 的初始化中使用了:
IDEA 中的调试表明它具有“Log4jMDCAdapter”,就像 MDCAdapter 的实现之一。但后来我看看StaticMDCBinder,有这样的代码:
那么 slf4j 怎么可能用适当的适配器初始化 MDC,例如 log4j ???我没明白。因为它总是使用 NOPMDCAdapter 它不能在 MDC 中存储任何东西,也不能在日志中显示它。我该如何解决?
在类路径中我有:
- log4j-1.2.16.jar
- slf4j-api-1.6.1.jar
- slf4j-api-1.6.2.jar
- slf4j-jcl-1.6.2.jar
- slf4j-log4j12-1.6.2.jar
java - Use Mapped Diagnostic Context (MDC) for passing colum values to log4j prepared statement
Is it safe to Use MDC to pass column values and xmls dynamically to a preparedstatement in log4j.xml. If yes, then how and when can i clear it to avoid memory leaks.
FYI - many threads are going to use my log4j simultaneously.
java - JUL(Java.util.Logging)的 MDC(映射诊断上下文)支持
我使用 Slf4j 和 java.util.Logging 设置了日志记录机制。我有几个线程,所以我无法从日志中得到一个清晰的想法,因为它们是混合的。现在我尝试使用MDC概念在日志文件中添加更多数据,以便它们清晰。
问题与Slf4j一样,尽管它不支持 MDC java.util.Logging。但它说
如果底层框架不提供 MDC,例如 java.util.logging,则 SLF4J 仍将存储 MDC 数据,但其中的信息需要通过自定义用户代码检索。
我正在尝试找到一种方法来执行此自定义代码。谷歌搜索对我没有多大帮助。Slf4j 中有一个名为“BasicMDCAdapter”的助手类。但我不知道如何使用它。我在任何地方都找不到示例代码。
这也是一个帮助解决这个问题的代码,但仍然没有给出任何描述。
我很感激这里有人的帮助。
谢谢你。