我有那些具体的要求 :
- 需要能够登录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(使用前将#替换为@)