2

logger.debug()为什么使用而不是一个好习惯System.out.println()

我知道 log4j 允许您控制要打印的内容(DEBUG、、、FATALINFO),但除此之外,还有其他好处吗?

4

3 回答 3

5

ALogger为您的日志记录增加了更多价值。

  • 日志级别:在生产环境中,您不关心某些级别(例如:调试信息),只关心严重错误和系统崩溃。
  • 日志过滤:过滤允许记录的组件。
  • 日志格式:控制日志中包含的信息及其格式。您可以设置默认值(如时间和线程 ID)或为每个语句添加更具体的值。
  • 日志目的地:您可以将记录器设置为写入文件、电子邮件、数据库等。
  • 保存和归档日志的策略:让记录器管理日志,保留一些历史记录,删除旧的

此外,记录器通常是同步的,因此您的打印语句不会相互覆盖。你不能用System.out.

您可以使用 实现所有这些System.out,但它会非常复杂和乏味。

于 2013-09-05T14:31:30.890 回答
0

如果您的代码曾经在 Web 服务或系统服务中使用过,usingdebug语句将确保它们出现在服务日志中。如果不是这样,您就有可能将它们打印到隐藏的控制台窗口并丢失。

于 2013-09-05T14:31:47.683 回答
0

与普通标准输出相比,专业记录器提供了许多好处:

  • 日志的逻辑分离,至少在两个正交区域:子系统和重要性
  • 灵活性 - 有许多预定义的方式来输出和存储日志数据,如果你真的想要,你可以自己滚动
  • 可配置性 - 您可以精确控制记录的内容位置,所有这些都在实际使用记录的代码之外,使其简单且不显眼
  • 格式化 - 您不需要手动附加所有的簿记信息,例如类名、时间等。Logger 以完全可配置的方式为您完成这些,允许您编写简单、清晰的日志记录代码并保留所有好处,如过滤和精确信息。
  • 速度 - 记录器经过优化,不会引入太多开销
于 2013-09-05T14:34:45.250 回答