如何使用 SLF4J 和 Log4j2 记录 FATAL(或任何自定义日志级别)

2024-05-10

我有那些具体的要求 :

  • 需要能够登录FATAL level
  • 需要使用SLF4J
  • 需要使用Log4j2

现在,这是我的执行:

final Logger logger = LoggerFactory.getLogger(HelloWorld.class);
final Marker marker = MarkerFactory.getMarker("FATAL");
logger.error(marker, "!!! Fatal World !!!");

这是我的图案布局 (在 yaml 中):

PatternLayout:
  Pattern: "%d{ISO8601_BASIC} %-5level %marker [%t] %logger{3.} - %msg%n"

这是我的日志输出 :

20150506T155705,158 ERROR FATAL [main] - !!! Fatal World !!!

您知道如何有效地从日志输出中删除“错误”吗?

非常感谢


Marker这并不是你真正想要的。Marker用于“丰富”日志消息,使其更易于搜索。您正在尝试更改日志级别/优先级,这有点不同。

你正在使用logger.error()这会将消息记录为ERROR level.

如果没有FATAL预先定义的级别(通常有,例如logger.fatal()),然后使用通用的logger.log()它允许您指定日志级别。

logger.fatal(yourMessage);

OR

logger.log(priorityLevel, yourMessage);

UPDATE:

来自 SLF4J 网站:

Marker 接口是 org.slf4j 包的一部分,它使 FATAL 级别在很大程度上变得多余。如果给定的错误需要超出为普通错误分配的注意范围,只需使用专门指定的标记来标记日志记录语句,该标记可以命名为“FATAL”或您喜欢的任何其他名称。

http://www.slf4j.org/faq.html#fatal http://www.slf4j.org/faq.html#fatal

因此,对于 SLF4J,不可能有FATAL日志级别。我强烈不同意这个决定背后的理由,但事实就是如此。

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

如何使用 SLF4J 和 Log4j2 记录 FATAL(或任何自定义日志级别) 的相关文章

随机推荐

  • SQL查询多行变成单行

    有什么方法可以将通常返回具有相同值的多行的 SQL 查询更改为单行吗 例如 如果我现有的查询返回以下内容 ColA ColB 1 AA 1 BB 1 CC 2 AA 3 AA 我可以将查询更改为仅返回 3 行 并将 1 的第二个和第三个结果
  • 找出圆周上像素坐标的算法

    如果我知道圆心 圆半径和垂直角的像素坐标 如何找出圆圆周上一定角度的像素值 基本上 我试图在不同的时间绘制时钟的指针 1点 2点等 Let h是浮点数形式的小时 h 2 25将是 02 15 等 在 0 到 12 之间 cX cY 是中心的
  • 如何自定义BlockingQueue的阻塞行为

    我想创建一个阻塞队列 它根据自定义规则而不是队列中的项目数量来阻止生产者 例如 生产者生成一些文件并放入队列中 消费者经过一番分析后将它们转移到特定位置 对于上述场景 如果队列中的总文件大小达到某个阈值 我希望生产者等待生成新文件 如果总大
  • Firebase 查询 Or'ing whereEqualTo 以获得可能值的列表

    我见过之前针对早期版本的 Firebase 提出过这个问题 https stackoverflow com questions 26700924 query based on multiple where clauses in fireba
  • 为什么 GridView Rowupdating 事件不捕获文本框的新值?

    我正在使用网格视图 当我单击编辑按钮时 会出现更新和取消按钮 修改来自 EditItemTemplate 的文本框中的值后 新值不会显示在事件处理程序 rowupdating 中 而是获取渲染页面时出现的值 如何从这些文本框中获取新值并进一
  • 用户如何登录定义了读者角色的 couchapp?

    我通过 Couchapp 部署了我的应用程序 这意味着整个应用程序是从数据库中提供服务的 我不希望 Couchdb 数据库中的数据公开可用 因此我指定了用户在向他提供数据之前必须具有的读者角色 然而 当我去申请时 我所能得到的是 error
  • 创建后修改 ggplot 对象

    有没有首选的修改方式ggplot创建后的对象 例如 我建议我的学生将 r 对象与 pdf 文件一起保存以供以后更改 library ggplot2 graph lt ggplot mtcars aes x mpg y qsec fill c
  • 减少1000张图片的HTTP请求?

    我知道这个问题可能听起来有点疯狂 但我想也许有人会想出一个聪明的主意 假设您在一个 HTML 页面上有 1000 个缩略图 图像大小约为5 10 kb 有没有办法在单个请求中加载所有图像 以某种方式将所有图像压缩到一个文件中 或者您对该主题
  • 递归替换多维数组中特定键每次出现的值

    我有一个数组 其数组深度可能会有所不同 例如 array one gt array array something gt value array something2 gt value2 another gt anothervalue tw
  • 从 Windows 窗体项目中创建 DLL

    我有一个包含 2 个项目的解决方案 其中一个项目只能从另一个项目运行 我想将它转换为 DLL 以便最终用户无法直接运行它 实际上 他们得到 2 个可执行文件 有没有直接的方法可以做到这一点 而不必复制整个项目 是的 转到 项目属性 应用程序
  • 如何通过 BOSH 使用 XMPP

    所以我对 BOSH 到底是什么有点困惑 这是一种使用http与XMPP服务器交互的方式吗 例如 openfire 使用 BOSHhttp domain com 7070 http bind http domain com 7070 http
  • 想要在 GWT 单元列表中实现“标记为已读”功能

    我想实施这个单元格列表的例子 http gwt googleusercontent com samples Showcase Showcase html CwCellList经过一处修改 我想在有人点击后将每一行设置为灰色 它应该保留在那里
  • 更改 Android Spinner 布局/设计

    我正在尝试修改设计Spinner http developer android com intl de reference android widget Spinner html小部件 我可以更改背景 但找不到更改右侧箭头图标的方法 有办法
  • SQL日期格式转换? [dd.mm.yy 至 YYYY-MM-DD]

    是否有 mySQL 函数可以将日期从 dd mm yy 格式转换为 YYYY MM DD 例如 03 09 13 gt 2013 09 03 由于您的输入是表单中的字符串03 09 13 我假设 因为今天是 2013 年 9 月 3 日 d
  • 指标元素之间的空间

    如何增加 减少指标元素之间的空间ViewPagerIndicator 我用过CirclePageIndicator 我能够通过以下步骤在两个指标之间留出更多空间 打开源代码CirclePageIndicator并找到变量mRadius 在第
  • 为什么我的 x 轴在 iPhone 上不显示核心图?

    编辑 我认为我的问题更好地表述为 我怎样才能有一个不从零开始的 Y 轴 看起来 x 轴总是放置在 y 0 处 但我希望 x 轴位于 y 轴上的某个正数 这是一张包含更多常规数据的图表 我只是希望将 x 轴放置在绘图的最小 y 值 大约 77
  • 自动解析 PHP,将 PHP 代码与 HTML 分离

    我正在开发一个大型 PHP 代码库 我想将 PHP 代码与 HTML 和 JavaScript 分开 我需要对 PHP 代码进行多次自动搜索和替换 对 HTML 进行不同的搜索和替换 对 JS 进行不同的自动搜索和替换 有没有一个好的解析器
  • 分组为连续整数范围

    我检查了其他帖子 包括使用 Linq 按可变整数范围进行分组 https stackoverflow com questions 1375997 group by variable integer range using linq 但我没有
  • 如何自定义 WCF 在序列化合约方法参数时采用的流程?

    我想设计一个人为的场景 但它有坚实的实际基础 想象一个集合类型 COuter 它是另一个集合类型 CInner 的实例的包装器 两者都实现了 IList 不用管 T 此外 COuter 实例隐藏在某个对象图内 其根 我们将其称为 R 是从
  • 如何使用 SLF4J 和 Log4j2 记录 FATAL(或任何自定义日志级别)

    我有那些具体的要求 需要能够登录FATAL level 需要使用SLF4J 需要使用Log4j2 现在 这是我的执行 final Logger logger LoggerFactory getLogger HelloWorld class