我第一次听到标记时读到:
我检查 Logger 对象的可用方法:
并找到接口:
我得到的更深入的信息:
但仍然困惑...请注意,我问为什么,而不是如何使用它们,所以这不是重复:
UPDATE 似乎在使用标记时,您还需要编写自定义Java代码,而不是在XML或.property文件中进行配置...
UPDATE 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"));
1 回答
这是问题“Best practices for using Markers in SLF4J/Logback”的重新版本my answer .
标记可用于着色或标记单个日志语句 . 你用这些颜色做什么,即标记,完全取决于你 . 然而,对于标记使用,两种模式似乎是常见的(第一种比第二种更常见) .
Triggering :可以指示一些appender在某个标记存在的情况下采取行动 . 例如,
SMTPAppender
可以配置为每当使用NOTIFY_ADMIN
标记标记日志记录事件时发送电子邮件,而不管日志级别如何 . 请参阅logback文档中的marker-based triggering . 您还可以组合日志级别和标记以进行触发 .Filtering :您可以使用颜色"DB"对所有与持久性相关的日志(在各种和多个类文件中)进行颜色/标记 . 然后,您可以过滤"DB":禁用日志记录,但标记为DB的日志语句除外 . 有关详细信息,请参阅logback文档中的chapter on filters(搜索MarkerFilter) .
在Markers出现之前,要实现类似的行为,您可以选择1)使用自定义级别2)使用修改后的 Logger 名称 . SLF4J API目前不支持自定义级别 . 对于选项2,如果需要修改一个或两个 Logger ,则后缀(或前缀) Logger 名称是可行的 . 这种方法变得不实用,因为很快就会有3个或更多的 Logger 被“分类”,因为相关的配置文件变得难以管理 .