第一次阅读时我听说标记:
http://slf4j.org/faq.html
我检查 Logger 对象的可用方法:
并找到接口:
我可以从以下获得更深入的信息:
但是仍然很困惑…请注意,我问 为什么 ,而不是 如何 使用它们,所以这不是重复的:
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 /Logback中使用标记的最佳实践
”问题的回答的重新版本。
标记可用于为 单个 log语句 着色 或标记。这些颜色(即标记)的处理完全取决于您。但是,标记使用似乎有两种模式很常见。 __
触发 :可以指示某些附加程序在存在特定标记的情况下采取措施。例如,SMTPAppender
可以配置为每当用NOTIFY_ADMIN
标记标记日志事件时发送电子邮件,而与日志级别无关。请参阅注销文档中的基于标记的触发。您也可以结合日志级别和标记进行触发。
过滤 :标记对于使某些有价值的日志语句脱颖而出非常有用。例如,您可以使用颜色“ DB”为所有与持久性相关的日志(在各种和多个类文件中)着色/标记。然后,您可以筛选“ DB”:禁用日志记录,但标有DB的日志语句除外。有关更多信息,请参阅登录文档中有关过滤器的章节(搜索MarkerFilter)。请注意,不仅可以通过登录来执行标记过滤,还可以使用日志分析工具来执行。
在标记出现之前,要实现类似的行为,您可以选择1)使用自定义级别2)使用修改的记录器名称。SLF4J
API当前不支持自定义级别。对于选项2,如果需要修改一个或两个记录器,则可以使用后缀(或前缀)记录器名称。一旦需要对3个或更多记录器进行“子分类”,该方法就变得不切实际,因为相关的配置文件变得难以管理。
即使单个标记可能已经非常有用,但SLF4J的下一版本(即2.0版)将在每个log语句中允许多个标记。
我第一次听说记号是在看书的时候: http://slf4j.org/faq.html 我检查了Logger对象的可用方法: null null 我从以下方面获得了更深入的信息: http://logback.qos.ch/manual/filters.html 但我还是一头雾水...请注意,我问的是为什么,而不是如何使用它们,所以这不是: null
在哪些情况下,应该使用? 是否只是为了合法性问题? 如果是,那么问题是什么? 因为我仍然使用开发我的所有项目
问题内容: 我正在研究Swing程序中文本组件的结构。 据我了解,本质上分为视图和模型。该模型是实现的类的实例,该类包含所有文本并提供操作文本的方法,而View则以可视方式呈现文本。 但是我不知道使用an的确切位置,方式和原因。我不确定是否封装(“拥有”)模型(),或者文档是否封装了模型。而且不确定所有这些视图在哪里适合。 有两个问题: 1- 请描述视图之间的关系和在。什么封装了什么,什么与什么相
问题内容: 我见过很多人声称您应该在选择查询中专门为想要的每一列命名。 假设我仍然要使用所有列,为什么我不使用? 即使考虑问题* SQL查询-从视图选择或从视图*选择col1,col2,’colN,我也不认为这是完全相同的副本,因为我正从略有不同的观点着手解决这个问题。 我们的原则之一是在优化之前就不进行优化。考虑到这一点,在被证明是资源问题或架构几乎是固定的之前,似乎应该使用 首选的 方法。众所
问题内容: 当我尝试运行程序时,出现以下错误 请帮忙 问题答案: 从Javadoc: 如果Java虚拟机找不到声明为native的方法的适当本机语言定义,则抛出该异常。 这是与JNI相关的错误。loadJacobLibrary试图加载名为jacob-1.14.3-x86的本机库,但在java.library.path定义的路径上找不到该库。启动JVM时,应将此路径定义为系统属性。例如 在Windo
在这里抛出RejectedExecutionException是否有其他原因? java.util.concurrent.RejectedExecutionException:任务java.util.concurrent.FutureTask@4194a5f0被java.util.concurrent.ThreadPoolExecutor@41a36e90拒绝[终止,池大小=0,活动线程=0,排队