【发布时间】:2013-05-24 15:54:31
【问题描述】:
我第一次听说标记是在阅读时:
我检查了 Logger 对象的可用方法:
- http://www.slf4j.org/api/org/slf4j/Logger.html
- http://logging.apache.org/log4j/2.x/log4j-api/apidocs/org/apache/logging/log4j/Logger.html
并找到接口:
- http://www.slf4j.org/api/org/slf4j/Marker.html
- http://logging.apache.org/log4j/2.x/log4j-api/apidocs/org/apache/logging/log4j/Marker.html
我得到的更深入的信息:
但我仍然感到困惑...请注意,我问的是 为什么,而不是 如何 使用它们,所以这不是以下内容的重复:
UPDATE 似乎当您使用标记时,您还需要编写自定义 Java 代码,而不是在 XML 或 .property 文件中进行配置。 ..
更新 2 来自http://logback.qos.ch/manual/appenders.html#OnMarkerEvaluator
Marker notifyAdmin = MarkerFactory.getMarker("NOTIFY_ADMIN");
logger.error(notifyAdmin,
"This is a serious an error requiring the admin's attention",
new Exception("Just testing"));
【问题讨论】:
-
要使用标记,您需要使用 SLF4J 提供的标记 API。这就是“自定义 Java 代码”的意思吗?
-
@Ceki 似乎只使用 Logger.warn(Marker, msg) 并没有给你任何好处,直到你为过滤器编写自定义类并注册它们......平原logback.xml 的语法对 Marker 没有特殊的能力(只需通过 %marker 打印它们)
-
在logback.qos.ch/manual/appenders.html#OnMarkerEvaluator 所呈现的内容中发现什么“特别”?
-
@Ceki 谢谢你的意见!是不是只有一处可以使用标记?
-
@Ceki 现在我们正在使用 Elasticsearch,它是标记特殊事件的方法。我们将预定义的标记保存在一个专门的类中以供重用。当您仅在文本日志上使用
grep时,这一点并不明显。
标签: java logging log4j slf4j logback