logging - 代码与日志的比率?

标签 logging coding-style

理想的代码与日志记录比率是多少?我不习惯编写日志,因为我开发的大多数应用程序都没有太多日志记录。

虽然我最近换了工作,但我注意到您看不到调用 log4net 的应用程序代码。我很欣赏这很有用,但肯定有太多调试语句与根本没有调试语句一样糟糕?

有一些日志语句可以告诉您每个方法何时开始和结束以及它们返回什么。当几乎所有事情都完成时。

使用一些插件在编译时使用反射添加日志语句,这样它们就不会妨碍您查看代码,这不是更容易吗?

而且在当今强大的 IDE 和远程调试的时代,这么多的日志记录真的有必要吗?

最佳答案

由于 log4net 在不堵塞资源方面做得很好,因此我在日志记录方面倾向于有点冗长,因为当您必须更改为 Debug模式时,您拥有的信息越多越好。这是我通常记录的内容:

调试级别

  • 传入的任何参数 方法
  • 我检索的结果集中的任何行计数
  • 传递给方法时可能包含可疑数据的任何数据行
  • 任何“生成的”文件路径、连接字符串或其他在被环境“拼凑”时可能会困惑的值。

信息级别

  • 方法的开始和结束
  • 任何主要循环的开始和结束
  • 任何主要 case/switch 语句的开始

错误级别

  • 处理异常
  • 无效的登录尝试(如果存在安全问题)
  • 我为报告而拦截的不良数据

致命级别

  • 未处理的异常。

还有大量的日志记录详细信息使我无法询问用户在收到错误消息时他们在做什么。我可以轻松地将它们拼凑在一起。

关于logging - 代码与日志的比率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/153524/

相关文章:

assembly - 解开汇编语言意粉代码

c - 为什么大多数 C 开发人员使用 define 而不是 const?

Azure ApiApp 中的 Java 日志记录

c++ - Boosts 说 boost::log 不支持 fork 进程。如果记录器直到 fork 之后才初始化,情况仍然如此吗?

python - 更改扭曲矩阵日志中的时间格式

python - 有没有更好的方法将字符串转换为Python中的数据集?

Python 记录多个文件

java - 我在哪里可以查看 Eclipse 中的 Tomcat 日志文件?

ruby - 为什么 `class << self` 比 `class << Foo` 更常见用于打开类对象的特征类?

sql - 更清洁的手动更新多行的方式