使用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,如何记录键值对 的相关文章

  • 如何将TabLayout与Recyclerview同步?

    我有一个TabLayout with Recyclerview这样当单击选项卡时Recyclerview滚动到特定位置 我也想要相反的过程 这样当Recyclerview滚动到特定位置 然后该特定选项卡会突出显示 例如 如果有 4 个选项卡
  • Java 中的递归回溯解决填字游戏

    我需要在给定初始网格和单词的情况下解决填字游戏 单词可以多次使用或根本不使用 初始网格如下所示 这是一个单词列表示例 pain nice pal id 任务是填充占位符 水平或垂直长度 gt 1 像那样 p pain pal id i c
  • 生成固定长度的随机数组[重复]

    这个问题在这里已经有答案了 我只是想更改我的代码 以便每次运行代码时都会生成固定长度 100 个整数的随机数组 而不仅仅是在代码中包含一个预先设置的数组 我对此很陌生 所以只需要正确方向的指导 谢谢 public class Selecti
  • 将命令行参数传递给可运行的 JAR [重复]

    这个问题在这里已经有答案了 我从 Eclipse 项目构建了一个可运行的 JAR 用于处理给定的 XML 文件并提取纯文本 但是 此版本要求将该文件硬编码在代码中 有没有办法做这样的事情 java jar wiki2txt enwiki 2
  • Spring Security“拒绝执行来自...的脚本”

    我正在 HTML 文件 thymeleaf 模板 中使用 Spring Security 和 Bootstrap 构建 Spring MVC 应用程序 Spring Security部分基于Spring Guide对于春季安全 http s
  • 包java.time不存在,jdk1.8

    嗯 我刚刚开始从事代号工作 我对 Java 有相当不错的经验 我的代码一切都很好 没有任何问题 但在编译时我得到了这个 error package java time does not exit import java time Local
  • 当服务器仅从请求中读取标头时,Http 客户端未收到响应

    我在 Java 中搞乱了 HTTP 和套接字 希望你能对此有所了解 当我用 Java SE 11 编写的 HTTP 服务器没有读取整个请求然后响应时 客户端不会收到它或收到错误 这是为什么 在服务器读取整个请求之前 客户端是否无法读取响应
  • 从相对路径读取文件

    我知道这个问题之前已经被问过 1000 次了 我确实尝试了所有解决方案 Java项目中如何从相对路径读取文件 java io File 找不到指定的路径 https stackoverflow com questions 3844307 h
  • Spring框架中的DAO和Service层到底是什么?

    Spring框架中的DAO和Service层到底是什么 我正在寻找理论答案 就 Spring 而言 没有区别 按照惯例 您可以使用以下方式标记 DAO 类 Repository和服务 Service 前者还进行一些持久层异常转换 既然您在理
  • 没有 if 条件(动态查询)或乱码的Where子句中的PreparedStatement“为null”

    假设我有这样的查询 SELECT FROM CUSTOMERS WHERE CUSTOMER ID 使用PreparedStatement 我可以绑定变量 pstmt setString 1 custID 但是 我无法通过以下绑定获得正确的
  • TestNG 与 DataProvider 并行执行

    我有一个从数据提供者接收数据的测试 我希望此测试与数据提供者的不同值并行运行 我尝试了这样的方法 public class IndependentTest Test dataProvider dp1 threadPoolSize 3 inv
  • Spring:当我的类已经用@RestController注释时,为什么我仍然应该使用@RequestBody?

    我目前正在将 Java 和 Spring 用于我的 Web 服务应用程序 我正在使用 RestController希望消除使用注释的需要 ResponseBody and RequestBody注释 不幸的是 删除 RequestBody注
  • 将一组 Java 对象转换为另一组对象的最佳方式是什么?

    这是一个真正的新手提出的基本 Java 问题 我有一组实现某个接口 接口 MyIfc 的Java对象 属于 MyClass 类 我有一组这些对象存储在我的类中的私有变量中 声明如下 protected Set
  • 谷歌gson LinkedTreeMap类转换为myclass

    我知道这个问题以前已经被问过 由于我对java和android的新手技能 我一个多星期都无法解决这个问题 我和我的一位朋友正在开发一个 Android 项目 其中有一些类似的事情 最奇怪的部分是 只有当我从 Google Play 商店下载
  • 使用 JSeperator - Java 时出现异常间隙

    我一直在开发 Swing GUI 并在添加后出现一些不寻常和不需要的间隙JSeperator 知道如何删除它们吗 或者任何其他选择来很好地实现这一目标 视觉描述 之前差距就很明显了JLabel 速度 及之后JSlider 相关代码 cont
  • 什么触发了java垃圾收集器

    我对 Java 中垃圾收集的工作原理有点困惑 我知道当不再有对某个对象的实时引用时 该对象就有资格进行垃圾回收 但是如果它有对实时对象的引用怎么办 可以说我有一个节点集合 它们再次引用更多节点 List 1 gt Node a gt Nod
  • “该选择不能在任何服务器上运行”

    我一直在 Eclipse 中开发一个动态 Web 项目 我收到这个错误 该选择不能在任何服务器上运行 早些时候它工作得很好 但现在我收到了这个错误 我删除了服务器并再次添加 Project gt Right Click gt Propert
  • Java 中的引用变量里面有什么?

    我们知道对象引用变量保存表示访问对象的方式的位 它不保存对象本身 但保存诸如指针或地址之类的东西 我正在阅读 Head First Java 第 2 版 一书 书中写道 第 3 章第 54 页 在 Java 中我们并不真正知道什么是 在引用
  • 缓冲区溢出(与)缓冲区溢出(与)堆栈溢出[重复]

    这个问题在这里已经有答案了 可能的重复 堆栈溢出和缓冲区溢出有什么区别 https stackoverflow com questions 1120575 what is the difference between a stack ove
  • 使用java读取行并映射过滤数据[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions publi

随机推荐

  • 使用 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