为什么使用 logger.debug()
而不是 System.out.println()
是一个好习惯?
我知道 log4j 允许您控制要打印的内容(DEBUG
、FATAL
、INFO
等),但除此之外,是还有其他好处吗?
最佳答案
Logger
为您的日志记录增加了更多值(value)。
- 日志级别:在生产环境中,您不关心某些级别(例如:调试信息),只关心严重错误和系统崩溃。
- 日志过滤:过滤允许记录哪些组件。
- 日志格式:控制日志中包含的信息及其格式。您可以设置默认值(如时间和线程 ID)或为每个语句添加更具体的值。
- 日志目的地:您可以将记录器设置为写入文件、电子邮件、数据库等。
- 保留和归档日志的策略:让记录者管理日志,保留一些历史记录,删除旧的
此外,记录器通常是同步的,因此您的打印语句不会相互覆盖。 You cannot guarantee that with System.out
.
您可以使用 System.out
实现所有这些,但它会非常复杂和乏味。
关于java - 何时在系统输出上使用 log4j,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18639056/