我正在开发一个 DLL,我想记录它生成的一些数据。
我想使用“Log4Net”,但我发现问题是在DLL中我没有可以编写XML代码的“App.config”文件,所以我不知道如何实现这个(我在这方面是新手)。
我读到了有关“Singleton”的内容,但我发现最好避免它,因为它有它的问题(即隐藏代码的一些可见性、单元测试的问题......)。
所以我的问题是:如何以及什么是为我的 DLL 生成的数据创建日志文件的最佳方式?
最佳答案
DLL(类库)永远不应该单独记录日志。即使是用于输出的日志文件(例如包含控制台甚至记录器代码的日志文件)也不应该决定编写自己的日志文件。记录工作(所有输出工作)无法由使用 DLL 的程序员控制甚至完全控制,这只会是令人烦恼的行为。而且你永远不应该写一些令人烦恼的行为。
日志记录是使用您的代码的人的工作,而不是您的代码的工作。如果您正在编写一个库或任何其他通常没有输出的东西(如 Windows 服务),那么通常有一个用于调试和测试的包装器项目。
如果它足够重要,就需要异常(exception)。如果它对于异常来说不够重要 - 它可能根本不够重要。编写良好的异常处理是一项艰巨的挑战,更不用说良好的异常抛出代码了。但我经常链接两篇关于这个问题的文章。我真的认为这会帮助你走上正确的道路:
- https://blogs.msdn.microsoft.com/ericlippert/2008/09/10/vexing-exceptions/
- https://www.codeproject.com/Articles/9538/Exception-Handling-Best-Practices-in-NET
他们确实帮助我掌握了它。到目前为止,他们帮助了无数人。他们的想法甚至不仅仅与 .NET 相关。
关于C# 如何记录 DLL 内的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62167843/