首页 > 解决方案 > C#如何在DLL中记录文件?

问题描述

我正在开发一个 DLL,我想记录它生成的一些数据。

我想使用“Log4Net”,但我发现在 DLL 中我没有可以编写 XML 代码的“App.config”文件的问题,所以我不知道如何实现这个(我我在这件事上是新的)。

我读到了“Singleton”,但我发现最好避免它,因为它有问题(即隐藏代码的一些可见性,单元测试的问题......)。

所以我的问题是:如何以及为我的 DLL 生成的数据创建日志文件的最佳方法是什么?

标签: c#loggingdllsingletonlog4net

解决方案


DLL - 一个类库 - 永远不应该自己记录。即使是那些用于输出的——比如包含控制台甚至记录器代码的——也不应该决定编写自己的日志文件。记录工作 - 所有输出工作 - 无法由程序员使用您的 DLL 控制甚至完全控制,这将是令人烦恼的行为。而且你永远不应该写一些带有恼人行为的东西。

记录是使用您的代码的人的工作,而不是您的代码。如果您正在编写库或其他任何通常没有输出的东西(如 Windows 服务),通常会有一个用于调试和测试的包装器项目。

如果它足够重要,它需要一个例外。如果它对于异常来说不够重要 - 它可能根本不够重要。编写好的异常处理是一项艰巨的挑战,更不用说好的抛出异常的代码了。但是有两篇关于我经常链接的文章。我真的认为会帮助你走上正确的道路:

他们真的帮助我解决了这个问题。到目前为止,他们帮助了无数其他人。他们的想法甚至不仅仅与 .NET 相关联。


推荐阅读