SLF4J - 什么是悬挂或分离标记?

2024-03-20

在 SLF4J 中我不完全确定什么是分离标记 http://www.slf4j.org/apidocs/org/slf4j/IMarkerFactory.html#getDetachedMarker%28java.lang.String%29是。 JavaDoc 相当含糊。

一些问题:

  • 它纯粹是标记的内存管理,即停止/启动标记被垃圾收集吗?
  • 当您使用悬挂/分离的标记进行记录时会发生什么?
  • 如果标记已分离,您仍然可以对其进行过滤还是已关闭?
  • 为什么要在运行时分离标记?我可以理解创建自由形式的动态标记,从而节省内存(要点1),但稍后分离我发现很奇怪。

我也有同样的问题,并试图找到一些相关信息。

In the SLF4J 发行说明 http://www.slf4j.org/news.html对于 1.3.1 它说

为了响应 Michael Newcomb 提出的增强请求,现在可以将标记从生成它的 MarkerFactory 的内部列表中分离出来。

它链接到 Bugzilla bug #39,但我再也找不到了。

线程用于物体识别的标记? http://mailman.qos.ch/pipermail/slf4j-user/2007-February/000231.html邮件列表 slf4j-user 与该主题有关,但不包含逐字请求。

我的解释是这样的:

  • 分离的标记不在内部列表中引用,并且可以被垃圾收集。
  • 由于标记可以有子项:如果您创建一个带有子项 B 和 C 的分离标记 A,然后重新检索具有相同名称的标记 A',则不能保证 A == A' 和 A' 可能不会具有相同的子项,如果您没有自己添加它们。
  • 我希望日志记录和过滤对于正常和分离的标记具有相同的行为,但要注意儿童的情况。
  • 主要应用似乎是带有动态标识符的标记。在上面的邮件列表线程中,示例是会话名称,它们总是不同的。同一会话中的不同组件将其用作标记,您可以将其放入日志模式中并稍后识别关联的日志消息。

顺便说一句,在Log4jMarkerFactory 的 log4j 2 文档 https://logging.apache.org/log4j/2.0/log4j-slf4j-impl/apidocs/org/apache/logging/slf4j/Log4jMarkerFactory.html,slf4j 的 log4j 实现,它提到了 getDetachedMarker() 方法

出于性能原因,Log4j 不支持分离标记。附上返回的标记。

因此,也许分离标记仅对某些日志库有用。

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

SLF4J - 什么是悬挂或分离标记? 的相关文章

随机推荐

  • 与 boost 图形库中的 std::vector 相关的外部属性映射

    我目前正在尝试定义增强图的外部属性 我使用一些捆绑属性作为内部属性 struct VertexProperties int demand struct EdgeProperties uint capacity int cost typede
  • 如何在MySQL和Java中转义引号“”字符

    我们怎样才能逃脱quotes Java 和 MySQL 中的字符 传入的 XML 文件带有引号 我正在使用 Java 解析该文件 所以我想在这里转义引号 但在数据库中它应该包含引号 当我进行查询时 结果会有引号 在网页上显示时 它还应该显示
  • JavaScript 对象类型和基本类型有什么区别?

    Stoyan Stefanov 在他的优秀著作 面向对象的 JavaScript 中说道 任何不属于上面列出的五种基本类型之一的值都是对象 对于五种原始类型 他的意思是Number String Boolean Undefined and
  • Ajax 回调中的设置状态抛出错误:警告:setState(...):只能更新已安装或正在安装

    我有一个相当简单的反应容器组件 它尝试在从 componentDidMount 调用的 ajax 回调中调用设置状态 完整的错误是 警告 setState 只能更新已安装或正在安装的组件 这通常意味着您在未安装的组件上调用了 setStat
  • 摆脱打开 EL 表达式时生成的愚蠢的空间日食

    当我在 Eclipse 中使用 EL 表达式时 我自然会先输入 Eclipse 想帮忙一点 放置了一个右括号 之后 然而 它们之间有一个空间 所以如果我想要 user name I type 其次是user name但我的最终结果是 use
  • 关闭子进程中打开的套接字

    我有一个 SIP 服务器 守护进程 它正在侦听 tcp 套接字 5060 现在 在这个父进程中 我创建一个子进程并在子进程中执行一些操作 现在 当我在父进程中关闭此 tcp 套接字并尝试再次创建 假设我在此服务器上禁用和启用 SIP 时 会
  • 尽管其中一项任务失败,Gradle 返回退出代码为 0

    假设我运行 gradle 任务如下 gradlew cleanTest task1 task2 info rerun task 在这里 如果任务 1 失败而任务 2 通过 则此运行的退出代码仍然为 0 如果任何任务失败 我希望它返回非零 这
  • PasswordResetsController#update 中的 ActiveModel::ForbiddenAttributesError

    我看过 Ryan 铁路广播第 274 集 我正在使用 Rails 4 并遇到一个问题 在password resets controller rb中 elsif user update attributes params user 在控制台
  • 触摸屏设备上的 HTML5 拖放 API

    我只是想知道用于拖放的 HTML5 API 是否包含对触摸屏显示的支持 我正在考虑 iPhone 但我知道它还不支持 我想知道苹果是否正在追赶 以支持 Safari 移动设备上的 HTML5 拖放 但我也想也许 HTML5 API 对此不够
  • 不使用 HQL 检索表的所有行?

    我正在使用 Hibernate 4 并且想简单地列出表的所有行 我发现的所有解决方案都建议使用 from tablename 之类的内容 但我想避免在字符串中硬编码表名 您可以使用 session createCriteria MyEnti
  • 如何让FlashDevelop使用32位JRE?

    我需要为 Android Studio 安装 64 位 JDK 这也意味着JAVA HOME设置为 64 位 JDK 我还安装了 32 位 JRE 和 Flex SDKjvm config文件我指定了它的路径 我知道 Flex SDK 使用
  • 声明FigureCanvasTkAgg导致内存泄漏

    我很难弄清楚为什么FigureCanvasTkAgg 的声明会导致内存泄漏 我的类中有以下几行 init method pndwinBottom is a paned window of the main screen self drawp
  • 获取存在多个相同值的行[重复]

    这个问题在这里已经有答案了 我有一个 R 数据框 看起来像这样 A B C 14 apple 45 14 bannaa 23 15 car 234 16 door 12 16 ear 325 正如您所看到的 14 和 16 是重复的 我想
  • 通用 DataRow 扩展

    我使用扩展方法来检查 DataRowField 是否为 null public static string GetValue this System Data DataRow Row string Column if Row Column
  • 如何使用 Dapper 扩展谓词实现“NOT IN”子句?

    我找到了如何实施IN使用 Dapper 扩展的子句here https stackoverflow com questions 49777139 how to implement in clause with dapper extensio
  • 临时 ASP.NET 文件丢失

    在我的asp项目中运行时抛出错误 昨天效果很好 但今天早上它自己给出了以下消息 Could not load file or assembly file C Windows Microsoft NET Framework v4 0 3031
  • 如何在单个事务下执行多个操作

    我有一个场景 需要将记录添加到表中 然后 如果添加了记录 则在云上创建资源 如果在云上创建资源 则使用资源标识符更新表中的记录 所以 它们是 3 个操作 当其中任何一个操作不成功时 我想恢复所有操作 我们一次性拥有用于多个数据库操作的 Tr
  • 如何调试我的 JavaScript 代码? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 当我发现我的代码片段有问题时 我应该如何调试它 Firebug http en wikipedia org wiki Firebug
  • jQuery/css/html:具有固定标题的可滚动表格[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我知道这个问题已经被问过好几次了 但我还找不到令人满意的 x 浏览器解决方案 我认为完成具有固定标题的可滚动表格的最简单方法应该是使用
  • SLF4J - 什么是悬挂或分离标记?

    在 SLF4J 中我不完全确定什么是分离标记 http www slf4j org apidocs org slf4j IMarkerFactory html getDetachedMarker 28java lang String 29是