问题标签 [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 投票
2 回答
4938 浏览

java - 在处理开始而不是结束时调用 MDC.clear() 有什么缺点吗?

我喜欢在我的应用程序中使用 MDC 日志记录字段,因为它使查找所有相关的日志行变得非常容易。我还发现在处理开始时 clear() MDC 上下文要容易得多,因为我知道我的应用程序的入口点在哪里,但是我或其他开发人员可能忘记调用 MDC.clear( )。

所以我的问题是,我这样做有什么缺点吗?根据经验,在处理开始与结束时始终清除上下文。

要清楚,如果我是从头开始编写代码,我会这样做:

但有时我必须使用基类或库中没有任何 MDC 相关代码的东西,所以我按照我描述的方式这样做,因为我不想从库中复制基类只是为了添加几行 MDC 代码...

0 投票
1 回答
5740 浏览

java - 在 spring-boot 中,如何使用应用程序属性记录 MDC?

在我的spring-boot项目中,我使用 Logback-"Mapped Diagnostic Context" MDC来记录诊断上下文。

默认情况下,不记录 MDC 数据(到控制台或文件)。

有没有办法让这个 MDC 日志进入输出日志,只使用应用程序属性?

0 投票
2 回答
1778 浏览

logback - 如何用现代 logback 取回 MDC“继承”?

回到旧项目并四处更新其依赖项后,我不得不意识到 logback 不再将 MDC 传播给子版本1.1.5https ://github.com/qos-ch/logback/commit/aa7d584ecdb1638bfc4c7223f4a5ff92d5ee6273

此更改使大多数日志几乎无用。

虽然我可以理解链接问题中给出的论点,但我不明白为什么不能以更向后兼容的方式进行此更改(这在 java 中通常是常见的..)。

:除了必须对从 Runnables 到 Threads 的所有内容进行子类化之外,现在实现相同行为的正确方法是什么?

0 投票
1 回答
320 浏览

wso2 - 通过 WSO2 ESB 4.8.1 中的日志跟踪消息

我需要获得一个唯一的 ID 来通过日志跟踪消息。我正在使用 WSO2 ESB 4.8.1。我找到了一篇与 WSO2 ESB 5.0.0 相关的文章。http://nuwanzone.blogspot.it/2016/12/wso2-esb-tracing-messages-through-logs.html。它描述了如何使用 MessageContext 对象为每条消息设置一个唯一 ID,以便我可以从消息流中的任何位置访问它。是否也可以在 WSO2 ESB 4.8.1 中实现类似的解决方案?(移植)WSO2 ESB 4.8.1 中的解决方案?你知道不同的解决方案吗?

0 投票
0 回答
1128 浏览

spring-boot - 在登录弹簧控制器建议期间如何使 MDC 可用?

我有一个 spring-boot Web 应用程序,它利用 logback 的 MDC 上下文来用自定义数据丰富日志。我有以下实现,它使一些与“customKey”关联的自定义数据可用,并且在将 %X{customKey} 添加到 logback 配置中的日志记录模式后,它会正确记录:

只要没有抛出未捕获的异常,这就可以正常工作。为了处理这些,我有一个控制器建议。遗憾的是,在登录控制器建议期间,MDC 不再可用,因为它已经被清理过了。如果我理解正确,spring 通过使用 HandlerExceptionResolverComposite 确定负责的 ExceptionHandler - 实现以最低优先级注册自身 - 因此它在 MDC 已被清理后排在最后。

我现在的问题是:我应该如何注册我的过滤器,以便在登录控制器建议期间 MDC 仍然可用?

我认为一种选择是从过滤器的 finally 块中删除 MDC.remove(...) 调用,而是实现一个 ServletRequestListener ,它在 requestDestroyed - 方法中清理 MDC。但是由于过滤器在多个 Web 模块中使用,我需要确保 ServletRequestListener 也在每个现有的和预期的模块中与 MDCFilter 一起声明,这对我来说似乎很容易出错。此外,如果负责将数据添加到 MDC 的过滤器也负责将其删除,我会更喜欢它。

0 投票
2 回答
1196 浏览

javascript - MDC Tabs Javascript in a re-useable way

I have implemented the demo js of MDC tabs found here and it's working fine. How would I go about converting this to be more re-usable so I could just use a generic selector like ".js-tabs", link them with tabs id="tab1" then the panels with for="tab1" and include that one piece of js in my main js file.

This is just a prototype so don't have to worry about writing production ready code.

Pen

https://codepen.io/rhysyg03/pen/OgRygJ

MDC Links

https://material-components-web.appspot.com/tabs.html

https://github.com/material-components/material-components-web/blob/master/demos/tabs.html

And my HTML

0 投票
2 回答
1796 浏览

logging - 访问 log4j2.xml 的 File 元素内的 MDC 键值

我正在尝试在以下内容中执行以下操作log4j.xml

我从java代码中设置了如下密钥:

我也尝试过${client}没有log4j2.xml 任何效果。如何log4j2.xml在布局元素外部引用 MDC 键?

我还在属性部分下为键指定了一个默认值,如下所示:

0 投票
1 回答
1436 浏览

angular - 了解 Angular 4 框架和 MDC Web 组件:抽屉

主要问题

我遇到的主要问题是了解如何使用 MDC Webcomponent Drawer 文档中的特定代码行,更具体地说是mdc对象(在提供的示例代码下方)。显然我不能发布超过 2 个链接,因为我没有足够的 bs“声誉”点。因此,我无法链接我实际所做的所有研究来为自己找到答案......所以抽屉示例是工作示例和它的源代码。我已经阅读了这些特定的资源:

  • Web 组件抽屉
  • 抽屉示例
  • 抽屉示例源代码
  • Material Components Web Components mdc-drawer Github项目
  • 以及其他一些各种堆栈溢出、github 示例和项目

示例代码

以下是完整的代码。如果我要将它直接粘贴到 angular4 项目的 src/ 目录中的“index.html”文件中,它可以正常工作,所以很明显我不明白如何访问看似即将到来的mdc对象来自material-web-components.js文件。我认为我需要以某种方式使该 .js 文件中的 mdc 对象可用于我的 angular4 项目,并且我对此进行了很多研究,但我可能没有提出正确的问题。在所有示例中,它只是说使用内容交付网络 (CDN) 或通过 ./assets/ 目录或 node_modules/ 文件夹在您的项目中本地引用它。我可以通过 CDN 或本地资产/参考访问 .js 文件,但它仅在顶级 index.html 文件中可用。如果我尝试在 angular4 项目的任何其他部分使用它,例如在 app-root 组件中,它不会连接或工作。我是否需要在配置文件、app.module.ts、导入等中提供它?

相关代码

相关行是:var MDCPersistentDrawer = mdc.drawer.MDCPersistentDrawer; 并且无法识别 mdc 对象。

下面是具体代码:

缺乏了解

我是 JavaScript、MVC 框架、Angular2/4/Angular-cli 和集成材料设计工具集的新手。几个月以来,我一直在自学这一点,并试图共同形成对所有这些的基本理解。我已经完成并构建了整个 Angular “Heroes” 示例项目,并使用它通读了表层文档,因此我尝试为这些概念以及如何使用这个特定框架做好准备。我觉得我在这个 mdc 对象中遗漏了一些简单(可能很复杂)的东西。在 Github 项目文档中,它们实现的 JavaScript 与 Drawer 示例中的稍有不同,如您所见:

HTML

JS:

但他们仍然引用该mdc对象并以某种方式访问​​它。我已经通过 npm 安装了所有的 webcomponents:npm install --save material-components-web并按照这里的说明(material.io/components/web/)如何开始。

那么我错过了什么或不理解什么?

感谢您的任何帮助。

0 投票
1 回答
1747 浏览

dialog - 防止 MDC 对话框关闭

使用接受/取消侦听器时是否可以阻止对话框关闭?我现在在我的对话框中设置了一个自定义按钮。MDC 对话框组件中是否有内置的东西来处理这个问题?

提前致谢!

0 投票
2 回答
7378 浏览

json - Json 格式的 API 日志记录

我想将 API 请求/响应记录为 json 格式。

预期的 LogEntry 类似于

我的问题是:

使用 Logback,如何将嵌套字段(例如,上例中的 headers、labels、requestPaylod)记录为 json 子文档。我尝试了 MDC,但它仅限于“字符串,字符串”的映射,并将第一级之后的所有字段都视为字符串。

我讨厌为此编写我的自定义记录器,并且想利用经过验证的日志记录框架(logback/log4j)的优点来控制日志记录级别、时间戳日志事件等。