SLF4J日志记录,不同级别
在SLF4J(日志记录)中,特征级别有何不同。即ERROR消息与DEBUG消息不同。SLF4J日志记录,不同级别
import org.apache.log4j.Logger;
public class LogClass {
private static org.apache.log4j.Logger log = Logger.getLogger(LogClass.class);
public static void main(String[] args) {
log.trace("Trace Message!")
log.debug("Debug Message!");
log.info("Info Message!");
log.warn("Warn Message!");
log.error("Error Message!");
log.fatal("Fatal Message!");
}
}
输出是一样的,不管水平如何,有没有实施任何区别:
Debug Message!
Info Message!
Warn Message!
Error Message!
Fatal Message!
如果这些水平产生相同类型的消息,那么为什么执行不只有一个方法用参数作为级别。 类似于:
log("Level","msg");
从底部开始,就没有真正的好处有log(level, msg)
方法,如果你已经把所有的所有可能等级的不同方法。只有当你需要在不同级别登录相同的信息时,这是一个不好的做法,因为这个信息应该清楚地归入一个特定的类别。而且,您可以通过全局或在包/类中指定级别来始终选择要输出多少记录。 消息在每个级别上都完全相同,唯一的区别是如果该消息将根据您的配置对日志输出做出决定,以及您为每个级别提供了什么目的。
因为它更容易作为用户使用。作为实现,它可能会有那个代码。
的主要目的,他们的名字是水平,使您在各种级别进行调试。举例来说, INFO级别可用于记录执行期间应用程序进度的高级信息。 记录的DEBUG级别意味着要比高级信息更深入。在DEBUG级别,您可以记录更多信息,其中可以包含在模块级别或组件级别发生的情况的信息。 TRACE级别更加细化。您可以记录消息,如进入和退出方法以及每种方法返回的信息。 错误级别纯粹意味着仅记录错误和异常
您需要注意哪些消息可以记录到其各自的级别。
要回答你的问题,这些水平可以在log4j.properties或log4j.xml文件进行控制。您可以指定应用程序可以调试的级别。如果在应用程序中一切顺利,我会将其保留在INFO级别。如果出现问题,我想在调试方面深入挖掘,我会尝试在DEBUG级别或TRACE级别打开。
而且,明白,当你在运行DEBUG级别的调试,甚至INFO级别的日志将被打印出来。如果在TRACE级别打开调试,即使打印DEBUG和INFO级别的日志。如果在INFO级别打开调试,则只会打印INFO级别日志。
我希望你有一些澄清。
如何动态确定关卡或基于用户输入的情况如何。目前,您需要分支(if-else或switch-case),而使用日志(Level,String)时,您可以调用一次日志。 – Dormouse