Jus*_*ant 13
从较高的层面来说,Log4j在手动记录方面的胜利是,您可以将日志记录代码与实际要记录的内容以及记录位置和方式进行分离.有关记录详细程度/过滤,格式化,日志位置甚至日志类型(文件,网络等)的详细信息都是使用配置以可扩展方式通过自定义appender以声明方式处理的,而您必须自己编写这种灵活性的代码.
这非常重要,因为开发人员通常很难预测一旦软件投入生产后日志记录需求将如何变化.管理该软件的运营团队可能需要更少的详细日志,可能需要多个日志,可能需要将这些日志发送到多个服务器,有时可能需要获得真正详细的数据以进行故障排除等.如果需要,运营团队通常不可能改变日志记录的工作方式,说服开发人员进行大的代码更改.这通常会导致生产停工,操作和开发之间的摩擦,以及浪费时间.
从开发人员的角度来看,Log4j使您不必进行代码更改以支持日志记录,并使您不会被希望记录更改的人所困扰.它使管理代码的人能够抓住自己的痒而不是烦扰你!
此外,由于Log4j是Java日志记录的事实标准,因此有许多工具可以使用Log4j做很酷的事情 - 此外还会阻止您和您的运营团队重新发明轮子.
我最喜欢的功能是能够轻松编写appender将数据发送到非文件源,如SYSLOG,Splunk等,这使您的应用程序可以轻松自定义登录到您的IT部门已经使用的操作管理工具.
实际上,这些天您应该查看slf4j的外观,因为它允许您使用{} -placeholders来获得最简洁的语句.然后,您可以使用slf4j后面的相应日志记录框架来处理日志语句的实际处理.这可能是log4j或slf4j-simple,它只打印出所有的INFO,WARN和ERROR,并丢弃其余部分.
您需要做的关键观察是,在编写代码时完成日志语句的写入,并且在部署代码时完成所需内容的决策,这可能是代码编写和测试后的数年.System.out.println要求您在物理上更改代码以摆脱它们,这在严格的write-test-deploy循环中是不可接受的.如果代码发生变化,则必须重新测试.使用slf4j,您只需启用想要查看的人.
我们在测试阶段进行了完整的日志记录,而在生产部署的初始阶段进行了详细的日志记录,之后我们仅查看信息.这为我们提供了完整的信息,在这种情况下很少能够调试案例.
您可能会发现我写的这篇文章很有趣.目标受众正在开始Java程序员,我打算从一开始就给他们良好的习惯. http://runjva.appspot.com/logging101/index.html
| 归档时间: |
|
| 查看次数: |
4914 次 |
| 最近记录: |