Agu*_*i-N 17 language-agnostic error-handling logging
很多次我看到记录这样的错误:
System.out.println("Method aMethod with parameters a:"+a+" b: "+b);
print("Error in line 88");
Run Code Online (Sandbox Code Playgroud)
那么..记录错误的最佳做法是什么?
编辑:
这是java但可能是C/C++,基本等.
mat*_*t b 24
直接登录到控制台是可怕的,坦率地说,是一个没有经验的开发人员的标志.做这种事情的唯一原因是1)他或她不知道其他方法,和/或2)开发人员没有想到将他/她的代码部署到生产站点时会发生什么,以及如何在该点维护应用程序.处理记录1GB /天或更多完全不需要的调试日志记录的应用程序是令人抓狂的.
普遍接受的最佳做法是使用具有以下概念的Logging框架:
您将使用的最终日志框架当然取决于您的平台.一些常见的选择:
Apache Commons Logging不适用于应用程序常规日志记录.它旨在供不希望强制API用户使用日志记录的库或API使用.
Commons Logging也存在类加载问题.
选择[很多]日志API中的一个,最广泛使用的可能是log4j或Java Logging API.
如果您想要实现独立性,您可能需要考虑log4j的原作者SLF4J.
说完拿起一个实现,然后使用该执行中的日志记录级别/严重性一致,从而使搜索/过滤日志更容易.