使用log4j2,如何记录键值对

2024-03-19

我需要创建带有键值对的日志,如下所示。 PatternLayout 是否支持使用 log4j2.xml 对线程中的静态字段(如 log_level、class_name、event_id 等)执行此操作。

日志样本:

2014-06-18 11:57:46,719 log_level="信息" class_name="com.abc.dgl.App:main(158)" name="应用程序启动事件" event_id="b88f7ea0-4cb1-438f-a728-ac7c2bdac578" app="测试应用程序"严重程度="info"action="已加载 sfor 文件处理" desc="props 已读取并加载" result="success" Reason="abc" transaction_id="b88f7ea0-4cb1-438f-a728-ac7c2bdac578"


是的,这是可能的。

您可以使用地图留言 http://logging.apache.org/log4j/2.x/log4j-api/apidocs/org/apache/logging/log4j/message/MapMessage.html,这是由map (or K) 的转换模式图案布局 http://logging.apache.org/log4j/2.x/manual/layouts.html#PatternLayout:一个示例布局模式是"%-5p [%t]: %m %map%n".

记录 MapMessage 如下所示:Map<String,String> myMap = getMyMap(); Logger.debug(new MapMessage(myMap));

另一种方法是使用线程上下文 http://logging.apache.org/log4j/2.x/manual/thread-context.html地图。这是由mdc (or X)PatternLayout的转换模式。示例模式:"%-5p [%t]: %m %mdc%n"。 常见用法是在用户登录时将用户 ID 放入线程上下文映射中,并在该线程发出的所有日志消息中显示该用户 ID,直到用户注销为止。

您还可以仅通过在布局模式中指定键来记录特定键,而不是记录整个地图:例如"%-5p [%t]: %m %mdc{userID}%n".

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用log4j2,如何记录键值对 的相关文章

随机推荐

  • 使用 Windows 窗体在按钮上显示工具提示

    如何使用按钮在按钮上显示工具提示Windows 窗体 http en wikipedia org wiki Windows Forms 工具提示是一个singleWinForms 控件 用于处理显示工具提示multiple单个表单上的元素
  • Spring Boot MVC 的 web.xml 等效吗?

    JSP规范让我可以服务 html使用以下方法将文件作为 JSP 即让容器将它们作为 JSP 文件处理
  • 动态需要 React Native 图像

    我正在努力在我的反应原生项目中加入一些代表国家的旗帜 我发现你不能在 React Native 中动态地要求图像 如下例所示 require assets flags 32 countryCode png 鉴于我发现的如此回应here ht
  • ELB 后面的 Symfony2 重定向到 http 而不是 https

    Issue 用户登录https example com login https example com login 认证已获批准 根据 security yaml 中的配置 Symfony 在登录后将用户重定向到个人资料页面 但它会将它们重
  • CMake工具链包含多个文件

    由于与提及无关的原因 我希望能够将多个文件包含到工具链文件中 假设我的工具链包含以下内容 message STATUS file1 is ok include build file2 file2 包含标识行 message STATUS f
  • 如何将媒体查询添加到 Jquery 中

    是否可以将媒体 jquery 添加到您的 jquery 代码中 当我的屏幕尺寸达到 800px 时 我需要减小 slideWidth 83 document ready function slider4 bxSlider slideWidt
  • 如何生成CMakeLists.txt?

    我需要一些关于如何为 CMake 自动生成 CMakeLists txt 文件的指示 建议 有谁知道现有的发电机吗 我已经检查了列出的CMake 维基 http www cmake org Wiki CMake Basic CMakeLis
  • jQuery - 如何检查元素是否具有这些类中的任何一个

    Example 如何检查 div test 是否有以下任一内容 a1 a2 a3 a4 a5课程 只有一个 if 语句 div class a1 a2 a5 div 你可以使用jQuery is功能 http api jquery com
  • 将恐慌重定向到指定的缓冲区

    有什么办法可以做到这一点吗 在终端图形库中 如果发生异常 异常将在显示之前被刷新 这使得使用该库进行编程非常困难 impl Drop for Terminal fn drop mut self self outbuffer write al
  • 在 Objective-C 中双击打开文件

    我想在双击文件时使用我的应用程序打开该文件 我已在应用程序中注册了文件类型 并且application openFile 如果我将文件拖放到应用程序图标上 方法就可以正常工作 在苹果文档中 它说 当用户双击文件时 此方法也应该起作用 我看到
  • UIDatePicker 15 分钟增量 Swift

    In swift 我想知道如何使用我的UIDatePicker选择 15 分钟增量 因此 我不想选择 60 分钟的小时 而是只希望能够选择 00 分钟 15 分钟 30 分钟和 45 分钟 这是我当前的实现 var schedulePick
  • Javascript 在元素上切换类

    假设我有这个 HTML 结构 div class sType click div class Switcher span class customText Custom text span div div div class sType c
  • 使用 babel 递归地转译服务器文件

    我的文件夹结构是这样的 functions dist private server controllers middleware clientAuth js someOtherAuth js index js model js router
  • Highcharts 日期相差一天

    我以毫秒为单位传递 x 轴 然后将 x 轴定义为 xAxis type datetime 然而 Highcharts 似乎没有在 x 轴上获得准确的日期 而是相差一天 为了说明这一点 将鼠标悬停在任何条形图上 在这篇文章的底部拨弄 您将看到
  • mockito 的学习资源 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我需要使用mockito为现有代码创建单元测试框架 我找不到一个开始学习 Mockito 的好地方 你能给我推荐一个很好的mockito学
  • 在缓存图像上触发 load() 事件的更好方法是什么?

    我正在编写一个脚本 该脚本等待隐藏内容加载div在激活指向它的缩略图之前 preload img first child bind load activateThumb each function if this complete this
  • 如何获取属性的串联值?

    XPath 表达式 div concat id class 失败并出现错误 The expression is not a legal expression 在 Firefox 25 0 中 来自用户脚本 为什么 以及如何解决 对于输入 d
  • 如何通过 MediaWiki API 从 Wikipedia 文章中获取信息框? [复制]

    这个问题在这里已经有答案了 维基百科文章可能有信息框模板 通过以下调用 我可以获得包含信息框的文章的第一部分 http en wikipedia org w api php action parse pageid 568801 sectio
  • 使用 sed 将文件中的字符串替换为该名称的变量的内容

    我正在尝试使用 sed 将 XXX 形式的文件中的模板字符串替换为 shell 脚本中名为 XXX 的变量的值 例如以下完美运行 sed s user home user home gi So if user home fred下列 Nam
  • 使用log4j2,如何记录键值对

    我需要创建带有键值对的日志 如下所示 PatternLayout 是否支持使用 log4j2 xml 对线程中的静态字段 如 log level class name event id 等 执行此操作 日志样本 2014 06 18 11