log4j www.example.com和logger之间的差异logger.info,debug

clj7thdc  于 2022-11-06  发布在  其他
关注(0)|答案(9)|浏览(139)

logger.debuglogger.info之间有什么区别?
何时打印logger.debug

zbdgwd5y

zbdgwd5y1#

我建议您阅读名为"Short Introduction to log4j"的文章。它包含了日志级别的简短说明,并演示了如何在实践中使用它们。日志级别的基本思想是,您希望能够根据具体情况配置日志包含的详细程度。例如,如果您试图解决一个问题,您可能希望日志非常详细。在生产中,您可能只想看到警告和错误。
系统中每个组件的日志级别通常通过配置文件中的一个参数来控制,因此很容易更改。您的代码将包含具有不同级别的各种日志语句。当响应Exception时,您可以调用Logger.error。如果您想打印某个变量在任何给定点的值,您可以调用Logger.debug。程序中可配置的日志级别和日志语句的这种组合允许您完全控制应用程序记录其活动的方式。
至少在log4j的情况下,日志级别的排序为:

  1. DEBUG < INFO < WARN < ERROR < FATAL

下面是那篇文章中的一个简短示例,演示日志级别的工作原理。

  1. // get a logger instance named "com.foo"
  2. Logger logger = Logger.getLogger("com.foo");
  3. // Now set its level. Normally you do not need to set the
  4. // level of a logger programmatically. This is usually done
  5. // in configuration files.
  6. logger.setLevel(Level.INFO);
  7. Logger barlogger = Logger.getLogger("com.foo.Bar");
  8. // This request is enabled, because WARN >= INFO.
  9. logger.warn("Low fuel level.");
  10. // This request is disabled, because DEBUG < INFO.
  11. logger.debug("Starting search for nearest gas station.");
  12. // The logger instance barlogger, named "com.foo.Bar",
  13. // will inherit its level from the logger named
  14. // "com.foo" Thus, the following request is enabled
  15. // because INFO >= INFO.
  16. barlogger.info("Located nearest gas station.");
  17. // This request is disabled, because DEBUG < INFO.
  18. barlogger.debug("Exiting gas station search");
展开查看全部
r9f1avp5

r9f1avp52#

这将取决于日志配置。默认值将取决于所使用的框架。其想法是,稍后通过将配置设置从INFO更改为DEBUG,您将看到大量的行(如果相反,则会看到更少的行)被打印出来,而无需重新编译整个应用程序。
如果你想使用哪一个,那么它归结为想你想在哪一个级别上看到什么。

vfwfrxfs

vfwfrxfs3#

只是对所有可能级别的设置进行说明,即:

  1. ALL < TRACE < DEBUG < INFO < WARN < ERROR < FATAL < OFF
b4qexyjb

b4qexyjb4#

基本上这取决于你的记录器是如何配置的。通常你会在开发过程中写出调试输出,但在生产中关闭-或者可能在调试特定区域时 * 选择 * 写出调试类别。
拥有不同优先级的意义在于允许您以合理的细粒度方式提高/降低特定组件的详细级别-并且只需要更改日志配置(而不是代码)就可以看到差异。

p3rjfoxz

p3rjfoxz5#

  1. INFO用于记录程序按预期工作的信息。
  2. DEBUG用于在程序不能按预期工作或出现异常的情况下查找原因。这符合开发人员的利益。
n6lpvg4x

n6lpvg4x6#

这是一个非常古老的问题,但我在这里看不到我的理解,所以我将添加我的2美分:
每个级别对应/Map一种类型的用户:

  • 调试:开发人员-手动调试
  • 跟踪:自动日志记录和步骤跟踪器-用于第3级支持
  • 信息:技术人员/支持级别1 /2
  • 警告:技术人员/用户错误:自动警报/支持级别1
  • 严重/致命:取决于您的设置-本地IT
egmofgnx

egmofgnx7#

这取决于您在log4j配置文件中选择的级别。

  1. <Loggers>
  2. <Root level="info">
  3. ...

如果您的级别是“info”(默认),logger.debug(...)将不会在您的控制台中打印。但是,如果您的级别是“debug”,则会打印。

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

  1. ALL < TRACE < DEBUG < INFO < WARN < ERROR < FATAL < OFF
nnsrf1az

nnsrf1az8#

logger.debug与www.example.com之间有何区别logger.info?

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

何时打印logger.debug??

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

bkhjykvo

bkhjykvo9#

信息消息是我们希望看到的东西,即使应用程序处于最佳状态。
调试消息通常是我们在调试某个问题时希望看到的内容。

相关问题