假设我正在为我的程序开发一个库或只是一些模块,我需要记录它/他吗?
我倾向于认为您应该只抛出异常或错误代码,原因如下:
- 如果我记录我的类的方法,那么当方法中抛出异常时,它将同时记录在类方法和调用它的模块中,也就是说,将会出现双重记录,但是如果有的话怎么办?超过两个这样的级别?
- 国外库未登录生产环境
另一方面,记录我的库将使我能够完全控制程序的整个流程
我得出的结论是,您只需要在测试阶段记录您的库。但是这样我就必须在最顶层对每个可能抛出异常的函数/方法进行调用,以获得信息的完整性,这不是很方便
你能告诉我该怎么做吗?
异常和日志有许多差异。日志不仅用于发生错误的情况。异常是公共接口的一部分。日志可以选择性地工作,异常应该始终有效。日志由开发人员写入和读取,它们可能包含内部信息。客户端应该知道日志在哪里,如果有任何问题,请将其发送给开发人员。
日志是否应包含有关异常的信息是开发人员的决定。最好这样做,因为惰性客户端并不总是正确处理异常。
如果库有自己的线程,那么获取详细信息的唯一方法是通过日志。该线程未在用户定义函数的上下文中运行。
最后,保存日志的位置。图书馆可以自己创建它们。例如,在 Windows 下,
Users. 这通常在设备库中完成。另一种方法是通过某种回调将每条日志消息传递给客户端。例如,通过虚函数。客户端程序本身决定对此做什么。可以写入文件。可以在控制台打印。这种方法比较通用。