要记录还是不记录?

Nat*_*pos 12 file-io logging

我现在正在建立一个电子书管理员,读者,组织者和出版商的程序,这也是一个电子书转移(对于像Kindle这样的电子书阅读器),但我正在开发它,一个问题加速了我的想法:"日志或不?"

然后我开始考虑记录.由于许多程序都记录了操作,我开始寻找它们并查看它们如何记录事物,然后我想知道:

  • 记录程序中发生的动作或事情(如错误)是很好的吗?
  • 在我的情况下,记录东西是好的吗?
    • 我需要记录什么?
  • 记录事物的最佳方式是什么(文本文件,数据库......)?
  • 有什么工具可以记录Lazarus吗?

Bri*_*new 22

这很重要.日志

  1. 相关数据的所有错误(方法args等).否则,您将遇到一系列无法​​分析的与bug相关的行为.
  2. 关键的进入和退出点(你的程序在做什么?此时应该调用这些方法吗?)
  3. 可能耗费时间的方法/操作(进入和退出),因此您可以衡量正在发生的事情,并了解您的计划正在做什么/在哪里.
  4. 从哪里加载配置(如果适用).这意味着你可以告诉你的程序如何配置自己(它使用的是哪个配置?)

如果你做对了,你可能会发现你在调试器中花费的时间越来越少.

我会错误地记录更多而不是更少,并删除或过滤if/when这成为一个问题(如下所述,每天记录Gbs可能适得其反).我已经在许多系统上工作,在这些系统中,已经规定日志记录将在开发后被拒绝或删除,并且这种情况从未发生过,因为它非常有用.有些人反对以影响性能为基础进行日志记录.如果是这种情况,请已知问题时将其删除,而不是之前.

您应该能够为特定平台找到合适的日志记录框架(例如,log4c for C,log4j for Java),以便进行适当的过滤和目标选择.这意味着您可以登录到文件(并限制日志大小),数据库,远程监视器等,并即时更改此决策(通过配置文件或命令行参数).除了插入适当的日志记录语句之外,正确的框架最初应该只需要很少.您不必在文件管理或其他日志管理代码方面写得太多.

这是一个关于这个主题的有用博客文章,并附有进一步的指导.

  • "删除后期开发,这永远不会发生" - 幸运的是你.我以前的客户广泛使用了日志记录设置.因为整个安装每天写入超过10 GB的日志,所以需要它.;)我们认为生产环境的调试信息太多,并为他的日志记录需求提供了一个新的配置文件. (2认同)
  • 是.在购买磁盘驱动器制造公司时,我*有*罐头记录是唯一的其他选择:-) (2认同)

Jur*_*uri 7

记录是必不可少的.为什么?用于追踪目的.只要您在本地计算机上进行开发,就可以快速调试,设置断点并找出出错的地方.一旦你在生产中部署,你的客户就会打电话给你,告诉他没看到他的期望(某处出现错误信息).相信我,如果你没有日志,你将很难搞清楚发生了什么.

嗯...... Brian的回答刚刚说出基本上我要继续的地方:)

无论如何,您也可以考虑一些面向方面的技术.它们非常适合日志记录,并且可以保持代码清洁.可能是您项目的选项.

关于日志记录的类型:我通常使用纯文本文件(具有一定的最大大小)工作得很好,除非您必须跟踪所有用户的活动(法律原因,无论如何).在这种情况下,DB日志可能更合适.