gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:51:21 24 4
gpt4 key购买 nike

我有那些具体的要求:

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

现在,这是我的实现:

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

这是我的PatternLayout (在 yaml 中):

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

这是我的日志输出:

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

您是否知道如何有效地从日志输出中删除“ERROR”?

非常感谢

最佳答案

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

您正在使用 logger.error(),它将消息记录为 ERROR 级别。

如果没有预定义的FATAL级别(通常有,比如logger.fatal()),那么使用通用的logger.log () 允许您指定日志级别。

logger.fatal(yourMessage);

logger.log(priorityLevel, yourMessage);

更新:

来自 SLF4J 网站:

The Marker interface, part of the org.slf4j package, renders the FATAL level largely redundant. If a given error requires attention beyond that allocated for ordinary errors, simply mark the logging statement with a specially designated marker which can be named "FATAL" or any other name to your liking.

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

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

关于java - 如何使用 SLF4J 和 Log4j2 记录 FATAL(或任何自定义日志级别),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30086459/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com