【发布时间】:2014-12-18 13:31:33
【问题描述】:
在我的 Java 应用程序中,我使用 SLF4J + Logback 进行日志记录。我在开发环境中使用 DEBUG 级别的日志记录,在生产环境中使用 ERROR 级别的日志记录。但是无论如何我都想记录一些消息,无论日志级别如何(类似于System.out.println("Some Message"),但使用记录器)。
有什么实用的方法可以实现这一点吗?我可以使用错误或更低级别,但我想做的是提供一些信息,所以logger.error("Some message"); 在语义上是错误的,它不是错误。
我可以在 logback.xml 中为我的班级定义另一个记录器,但这并不方便。
实现这一目标的正确方法是什么?
【问题讨论】:
-
我认为你不能。您必须为消息指定日志级别,并且仅当日志级别设置为该级别或更高的日志级别时才会显示。在任何情况下,您都无法记录某些内容。除了,正如你所说的,最低级别,致命,但它在语义上是不正确的。
-
我知道如果它已经存在那将是错误的,因为它可能被库等滥用,并且日志框架将毫无用处。但是我仍然需要那种功能,应该有一种“正确”的方式来做到这一点。
-
听起来您已经回答了自己的问题。在您的 Java 代码中,您希望在 WARN 级别记录一些消息,以便将它们记录在开发中而不是在生产中。您想要一直记录的其他消息,因此如果您使用相同的记录器,那么在生产中,它们必须至少记录在 ERROR 级别。如果您想在较低级别(可能是 ALL)记录消息并且仍然让它们出现在所有环境中,您确实需要另一个记录器。
标签: java logging slf4j logback