logger.info和logger.debug之间的区别

logger.infologger.info什么logger.info

什么时候会打印logger.debug

这将取决于日志loggingconfiguration。 默认值将取决于正在使用的框架。 我们的想法是,稍后通过将configuration设置从INFO更改为DEBUG,您将看到在不重新编译整个应用程序的情况下可以打印更多(或者更less的内容)行。

如果你认为应该使用哪一个,那么就归结为在哪个层次上想要看什么。 对于其他级别,例如在Log4J看API, http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/Level.html

我build议你看看这篇名为“Log4j简介”的文章。 它包含日志级别的简短说明,并演示如何在实践中使用它们。 日志级别的基本思想是,您希望能够根据情况configuration日志包含的详细信息。 例如,如果您尝试解决问题,则需要日志非常详细。 在生产中,您可能只想看到警告和错误。

系统中每个组件的日志级别通常通过configuration文件中的参数进行控制,因此很容易更改。 你的代码将包含不同级别的各种日志语句。 在响应Exception ,您可能会调用Logger.error 。 如果你想打印任何给定点的variables值,你可以调用Logger.debug 。 程序中的可configuration日志logging级别和日志logging的组合使您可以完全控制应用程序如何logging其活动。

至less在log4j的情况下,日志级别的sorting是:

 DEBUG < INFO < WARN < ERROR < FATAL 

这篇文章简单介绍了日志级别是如何工作的。

  // get a logger instance named "com.foo" Logger logger = Logger.getLogger("com.foo"); // Now set its level. Normally you do not need to set the // level of a logger programmatically. This is usually done // in configuration files. logger.setLevel(Level.INFO); Logger barlogger = Logger.getLogger("com.foo.Bar"); // This request is enabled, because WARN >= INFO. logger.warn("Low fuel level."); // This request is disabled, because DEBUG < INFO. logger.debug("Starting search for nearest gas station."); // The logger instance barlogger, named "com.foo.Bar", // will inherit its level from the logger named // "com.foo" Thus, the following request is enabled // because INFO >= INFO. barlogger.info("Located nearest gas station."); // This request is disabled, because DEBUG < INFO. barlogger.debug("Exiting gas station search"); 

只是澄清一切可能的层次,即:

 ALL < TRACE < DEBUG < INFO < WARN < ERROR < FATAL < OFF 

基本上取决于你的logging器是如何configuration的。 通常情况下,您将在开发过程中写出debugging输出,但在生产中closures – 或者可能在debugging特定区域时select了debugging类别写入。

具有不同优先级的要点是允许您以相当细致的方式调高/降低特定组件的细节级别,而只需要更改日志configuration(而不是代码)以查看差异。

logger.debug和logger.info有什么区别?

这些只是一些已经定义的默认级别。 你可以定义你自己的水平,如果你喜欢。 这些级别的目的是启用/禁用其中的一个或多个,而不需要对代码进行任何更改。

当logger.debug将被打印?

当您在configuration中启用debugging或更高级别时。

这取决于您在log4jconfiguration文件中select的级别。

 <Loggers> <Root level="info"> ... 

如果您的级别是“信息”(默认), logger.debug(...)将不会被打印在您的控制台。 但是,如果您的级别是“debugging”,它将会。

根据您的代码的关键性级别,您应该使用以下最准确的级别:

 ALL < TRACE < DEBUG < INFO < WARN < ERROR < FATAL < OFF