log4j2 在自定义 Appender 中将 printObject 设置为 true

2024-04-22

HERE https://logging.apache.org/log4j/2.x/manual/extending.html它说——

“如果 toString 方法,附加程序应将 printObject 指定为“true” 呈现传递给 Appender 的属性值。”

有人可以解释一下吗?这是否意味着如果 printObject=true,我们应该重写 toString() 方法?如果我们不重写 toString() 会怎样?


在 Log4j 2 初始化期间,配置中的所有插件都会被处理并存储在 Node 对象中。 Node.toString() 方法的实现使得如果原始插件的printObject属性为 true,Node.toString() 将委托给插件的 toString() 方法。否则,它返回一个包含插件类和插件名称的字符串。

所以一般来说,提供一个好的 toString() 方法并声明是明智的printObject是真实的。另一方面,如果您错过其中任何一个,也不是灾难:这主要用于调试。因此,如果printObject是 true 但您不重写 toString(),所发生的只是在调试插件时您将看不到有用的值。

Log4j 2 将初始化过程的详细信息记录到 DEBUG/TRACE 级别的 StatusLogger 中。如果您的配置以以下内容开头,您可以看到此信息<Configuration status="trace">.

自定义插件可以使用printObject属性来影响配置期间记录到 StatusLogger 日志记录的内容。可以肯定的是,初始化后,在调试结果节点值时显示插件的 toString() 值非常有用。

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

log4j2 在自定义 Appender 中将 printObject 设置为 true 的相关文章

  • 如何使用属性文件在log4j2中创建多个日志文件?

    我正在使用 property 文件在特定路径中创建日志文件 但我正在使用它创建单个文件 以下是我的属性文件代码 status error dest err name PropertiesConfig property filepath ap
  • .properties 文件的 log4j2 KeyValuePair

    如何在属性文件中的 log4j2 中创建键值对 我知道在 log4j 版本 1 中它是这样完成的 log4j appender x additionalFields key value log4j2 中的 XML 方式是
  • 无法使用基于日志的指标显示数据(指标类型:“计数器”)

    我正在努力创建一个带有 stackdriver 监控和基于日志的指标的图表 我的指标是一个计数器 默认情况下没有单位 日志可用于我的基于日志的指标 但是当我使用我的指标创建图表时 它说no data is available for the
  • 声纳问题:确保该记录器的配置是安全的

    我在 Sonar 上的代码遇到以下问题 确保该记录器的配置是安全的 我写的代码是 public static final Logger logger Logger getLogger logger if logLevel equalsIgn
  • Log4Perl 将多个程序的日志记录捆绑到一个日志中

    CPAN 上是否有任何 Logger 它允许我将多个程序的日志捆绑到一个文件中 并在两个程序同时运行并并行调用 log4Perl 时同步并行日志记录 背景是我使用一个自定义附加程序来写入电子邮件 我想将所有电子邮件捆绑在一个文件中作为备份
  • 运行程序的最佳 Haskell 库是什么? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 如果我要将一个程序投入生产 我需要该程序做几件事才能将其视为 可操作 也就是说 工程师和操作人员以可测量
  • 包装 NLog 时如何保留调用点信息

    我有一个包装 NLog 的类 称为 NLogger 我的日志保存到我的数据库中 我遇到的问题是如何显示日志记录发生的位置 我有这个
  • 使用 Bot Framework 记录 Node.js-Azure 应用程序

    我有一个托管在 Azure 上的节点应用程序 Bot Framework 机器人 记录调试信息的最佳方法是什么 例如 据我所知 使用console log 没有帮助 因为 Azure 中没有可供查看的控制台 我也不想打电话session s
  • Logback:如何仅将错误记录到文件中

    我已经读了 2 个小时的 logback 手册 但仍然不知道如何做我需要的事情 正如标题所说的那样简单 我只想将错误记录到文件中 并将其他级别 包括错误 记录到控制台 这是我的 logcat xml 文件的根部分
  • 使用 Trace 和 TraceSource 之间的区别

    任何人都知道之间的区别System Diagnostic Trace and System Diagnostic TraceSource课程 我在我的大部分项目中都使用了 Trace 我只是碰巧发现了TraceSource另一天 他们似乎提
  • Datadog 交易持续时间作为指标

    我们拥有来自不同服务且具有一个 CustomerID 的日志 SERVICE A CustomerID 11 Event start session Time 10 00 00 SERVICE B CustomerID 11 Event f
  • 是否有 CLI 可以跟踪 AWS Elastic Beanstalk 中的日志

    是否有用于跟踪 Elastic Beanstalk 应用程序日志的 CLI 实用程序 具体来说是一个 python Flask 应用程序 您可以使用他们的 eb CLI 来获取快照 eb logs 但我想做 类似于Heroku 优惠 htt
  • Python 日志记录中的准确时间戳

    我最近一直在构建一个错误日志应用程序 并且正在寻找一种准确地为传入数据添加时间戳的方法 当我说准确时 我的意思是每个时间戳相对于彼此应该是准确的 不需要同步到原子钟或类似的东西 我一直在使用 datetime now 作为第一次尝试 但这并
  • 事件日志解析器的适当设计模式?

    处理一个解析事件日志的项目 然后根据这些事件的属性更新模型 我一直很懒于 完成它 而更关心前期优化 精益代码和正确的设计模式 主要是自学实验 我感兴趣的是更有经验的设计师认为哪些模式是相关的 或者哪种类型的伪代码对象架构是最好的 最容易维护
  • 工作天蓝色日志记录设置

    我尝试设置跟踪日志记录有一段时间了 但就是无法让它正常工作 关于这个主题有这么多错误 过时的文章并没有帮助 但请有人给我一个良好且实用的设置 用于 Azure 1 6 的跟踪日志记录和查看 我想要做的就是能够从我的应用程序捕获和查看跟踪消息
  • 以编程方式设置 Logback Appender 路径

    我正在尝试以编程方式设置 Logback 附加程序路径 滚动文件附加器 http logback qos ch apidocs ch qos logback core rolling RollingFileAppender html准确地说
  • 如何启用 vstest.console.exe 日志记录?

    我试图查看在 Visual Studio 2013 中运行测试时究竟执行了什么 vstest 命令 如何启用 vstest console exe 日志记录 执行的命令是带有相关参数的 VSTest Console exe 当您运行测试时
  • 如何设置 log4net 每天将我的文件记录到不同的文件夹中?

    我想将每天的所有日志保存在名为 YYYYMMdd 的文件夹中 log4net 应该根据系统日期时间处理创建新文件夹 我如何设置它 我想将一天中的所有日志保存到 n 个 1MB 的文件中 我不想重写旧文件 但想真正拥有一天中的所有日志 我该如
  • 仅在代码的某些部分记录打印两次

    我一直在使用自定义格式化程序在代码中登录到终端 最近我一直在更改代码中的内容 但我找不到为什么现在在代码的某些部分日志被打印两次 这是自定义格式化程序的代码 import logging class MyFormatter logging
  • 在 Rails 中使用 gem 时,“无法删除 Object::ClassMethods”源于什么?

    我在安装 gems 时经常遇到这样的问题 有谁知道这源于什么 我见过几个不同的案例 但仍然不知道到底是什么原因造成的 sudo rake gems install trace in u app releases 20100213003957

随机推荐

  • 在 Win 7 上安装 Python 2.7 32 位:没有注册表项?

    我已从 python org 下载了 Python 2 7 2 Windows x86 32 位 MSI 并将其安装在 64 位 Windows 7 系统上 一切正常 至少命令行解释器启动并运行 但安装过程不会创建任何PythonWindo
  • `fgetc()` 可能返回 `EOF` 的所有原因是什么?

    当然fgetc 回报EOF when 文件结尾 or an 输入错误 occurs 这就是全部吗 这是否意味着没有更多数据可用 FILE inf int ch while ch fgetc inf EOF if feof inf puts
  • Android中AIDL的实时示例和使用?

    我想知道aidl 的实时示例及其使用 我研究了有关此主题的android 开发人员博客 我无法在实时世界中实现这一点 谁能举个例子告诉我 AIDL用于以某种格式共享数据 primitive and parcelable 与其他应用程序 现实
  • 使用 Adob​​e Air 证书签署 Android Native apk

    我需要帮助使用为 Adob e Air 生成的现有 p12 证书来签署 Android 本机应用程序 几年前 应用程序在 Adob e Air 中完成 签名并发布到 Google Play 现在 当从 Adob e Air 迁移到 Andr
  • 通过 CSS 注入 HTML

    我需要基本上设置content来自 CSS 的 HTML 内容 我目前正在执行以下操作 myclass content img src 然而 我看到的不是图像 而是文字 img src hello png 如何使用 CSS 注入任意 HTM
  • 在数据库中存储条件逻辑表达式/规则

    如何使用 RDBMS 存储逻辑表达式 我标记对象并希望能够基于这些标记构建事实陈述 这些可能被视为虚拟标签 Tags new for sale used offer Rule second hand goods new or used an
  • 限制 TinyMCE 编辑器中的键盘快捷键

    试图找到在 TinyMCE 编辑器的 jQuery 版本中禁用单个键盘快捷键的位置 目前允许的快捷方式列表是 ctrl z Undo ctrl y Redo ctrl b Bold ctrl i Italic ctrl u Underlin
  • 如何将 Visual Studio 中的结构打包为包含 uint32_t 的 24 位?

    我正在尝试将现有应用程序从 32 位 ARM 微控制器移植到桌面平台 例如 Microsoft Windows GCC 在 ARM 上使用 我能够使用 32 位 MinGW 编译器在 Windows 上成功编译该应用程序 但是我使用 Mic
  • 如何让内部控件不覆盖主控件的事件?

    我有一个UserControl其中包含一些内部控件 像这样的东西 现在当我在我的项目中使用它时 我想要every如果单击 我的控件点会引发相同的单击事件 就像其他控件一样 但问题是 我的处理程序在另一个项目中 仅当我单击背景上的某个位置 而
  • AWS:找不到 iam 的实例元数据

    我正在尝试在我的 ec2 实例上设置 elasticsearch s3 快照 它失败并出现以下错误 nested NotSerializableExceptionWrapper sdk client exception The reques
  • 如何同时远程连接到多个 Glassfish 4+ 实例?

    我正在寻找一种从基于 Swing 的独立客户端 JDK7 SE 同时连接到 Glassfish 4 JDK7 EE 的多个实例的方法 我通过以下方式成功连接到单个实例 这就是初始上下文的构造 private void connect Str
  • 我可以检查安装的 Indy 版本吗?

    我需要使用最新的 Indy 组件库版本 我可以通过某些源代码命令或任何其他技巧来获取库版本 以确保我使用正确的库 我知道我正在使用indy 160 bpl 这是我的 Delphi XE2 将鼠标移动到组件栏上时所说的内容 我从中获取的最新
  • Spring事务中是否需要异常处理?

    我对事务的异常处理有疑问 为了清楚地说明我的问题 我想展示我的配置
  • fn 和 fn* 有什么区别?

    在 Clojure 中 fn 和 fn 有什么区别 当我在语法中引用使用 宏创建的函数时 我看到 fn 例如 在 REPL 中 user gt inc fn p1 342 343 auto clojure core inc p1 342 3
  • JavaFX 滚动表更新性能随着时间的推移而降低

    我有一个 TableView 显示最后 N 个项目 顶部的新项目 从底部删除项目等 似乎发生的情况是 CPU 负载随着时间的推移而增加 导致同一台计算机上的其他 X 应用程序变得缓慢 平台详细信息 Redhat 6 7 32 位 Java
  • 不同长度的时间序列数据的聚类

    我有不同系列长度的时间序列数据 我想根据 DTW 距离进行聚类 但找不到与之相关的 ant 库 sklearn给出直接错误 而 tslearn kmeans 给出错误答案 我的问题是如果我用零填充它就可以解决 但我不确定这在聚类时填充时间序
  • `git svn rebase` 与 `git rebase trunk`

    我正在开发一个使用 subversion 作为存储库的项目 因为我需要进行一些还无法发送到 svn 服务器的更改 所以我开始使用git svn这样我就可以进行本地签到 我的设置如下所示 分支机构 trunk 跟踪 svn trunk mas
  • Java 8 升级后无法获取数据库连接

    我最近将一个应用程序从 java 1 7 升级到 1 8 其余库版本保持不变 升级后我收到以下错误 DEBUG 2015 11 12 09 55 12 BasicResourcePool An exception occurred whil
  • Cassandra - 有没有办法限制异步查询的数量?

    我想知道是否有办法限制 cassandra java 驱动程序同时执行的查询数量 目前 我执行了很多查询 如下所示 PreparedStatement stmt session prepare SELECT FROM users WHERE
  • log4j2 在自定义 Appender 中将 printObject 设置为 true

    HERE https logging apache org log4j 2 x manual extending html它说 如果 toString 方法 附加程序应将 printObject 指定为 true 呈现传递给 Appende