Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java logger.info和logger.debug之间的差异_Java_Logging_Log4j - Fatal编程技术网

Java logger.info和logger.debug之间的差异

Java logger.info和logger.debug之间的差异,java,logging,log4j,Java,Logging,Log4j,logger.debug和logger.info之间有什么区别 何时将打印logger.debug?基本上取决于记录器的配置方式。通常,您会在开发过程中写出调试输出,但在生产过程中关闭,或者可能会在调试特定区域时写出选定的调试类别 具有不同优先级的目的是允许您以合理的细粒度方式提高/降低特定组件的详细级别,并且只需要更改日志记录配置(而不是代码)即可看出差异。这将取决于日志记录配置。默认值将取决于所使用的框架。其思想是,稍后通过将配置设置从INFO更改为DEBUG,您将看到在不重新编译整个应用程

logger.debug
logger.info
之间有什么区别


何时将打印
logger.debug

基本上取决于记录器的配置方式。通常,您会在开发过程中写出调试输出,但在生产过程中关闭,或者可能会在调试特定区域时写出选定的调试类别


具有不同优先级的目的是允许您以合理的细粒度方式提高/降低特定组件的详细级别,并且只需要更改日志记录配置(而不是代码)即可看出差异。

这将取决于日志记录配置。默认值将取决于所使用的框架。其思想是,稍后通过将配置设置从INFO更改为DEBUG,您将看到在不重新编译整个应用程序的情况下打印出大量的行(如果相反,则会减少)


如果你想用哪一个,那么它归结为思考你想在哪个层次上看到什么。对于Log4J中的其他级别,请查看API,

我建议您查看名为的文章。它包含对日志级别的简短解释,并演示如何在实践中使用它们。日志级别的基本思想是,您希望能够根据情况配置日志包含的详细信息。例如,如果您试图解决问题,您可能希望日志非常详细。在生产环境中,您可能只希望看到警告和错误

系统每个组件的日志级别通常通过配置文件中的参数进行控制,因此很容易更改。您的代码将包含不同级别的各种日志记录语句。当响应
异常时
,您可以调用
Logger.error
。如果要在任何给定点打印变量的值,可以调用
Logger.debug
。程序中可配置的日志记录级别和日志记录语句的组合允许您完全控制应用程序将如何记录其活动

至少在log4j的情况下,日志级别的顺序为:

DEBUG < INFO < WARN < ERROR < FATAL
DEBUG
下面是那篇文章中的一个简短示例,演示了日志级别是如何工作的

   // 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");
//获取名为“com.foo”的记录器实例
Logger=Logger.getLogger(“com.foo”);
//现在设定它的水平。通常,您不需要设置
//以编程方式设置记录器的级别。这通常是这样做的
//在配置文件中。
logger.setLevel(Level.INFO);
Logger barlogger=Logger.getLogger(“com.foo.Bar”);
//此请求已启用,因为WARN>=INFO。
记录器警告(“燃油油位低”);
//此请求已禁用,因为调试<信息。
调试(“开始搜索最近的加油站”);
//记录器实例barlogger,名为“com.foo.Bar”,
//将从名为的记录器继承其级别
//因此,启用了以下请求
//因为INFO>=INFO。
barlogger.info(“位于最近的加油站”);
//此请求已禁用,因为调试<信息。
调试(“退出加油站搜索”);

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

这些只是一些已经定义的默认级别。如果愿意,您可以定义自己的级别。 这些级别的目的是启用/禁用其中一个或多个级别,而无需对代码进行任何更改

何时打印logger.debug??


当您在配置中启用调试或任何更高级别时。

只需对所有可能级别集进行说明,即:

ALL < TRACE < DEBUG < INFO < WARN < ERROR < FATAL < OFF
ALL
这取决于您在log4j配置文件中选择的级别

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

这是一个非常古老的问题,但我在这里看不到我的理解,因此我将添加我的2美分:

每个级别对应/映射一种类型的用户:

  • 调试:开发人员-手动调试
  • 跟踪:自动日志记录和步骤跟踪-用于3级支持
  • 信息:技术员/支持级别1/2
  • 警告:技师/用户错误:自动警报/支持级别1
  • 严重/致命:取决于您的设置-本地IT
  • 信息用于记录程序按预期运行的信息
  • “调试”用于在程序未按预期工作或发生异常时查找原因。这符合开发商的利益

  • @momomo您可能想检查答案,以了解
    跟踪
    日志级别是什么。您的示例
    如果您想在任何给定点打印变量的值,可以调用Logger。debug
    帮助我澄清了
    调试
    跟踪
    级别之间的混淆。非常感谢。
    ALL < TRACE < DEBUG < INFO < WARN < ERROR < FATAL < OFF