C# 如何记录 DLL 内的文件?

标签 c# logging dll singleton log4net

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

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

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

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

最佳答案

DLL(类库)永远不应该单独记录日志。即使是用于输出的日志文件(例如包含控制台甚至记录器代码的日志文件)也不应该决定编写自己的日志文件。记录工作(所有输出工作)无法由使用 DLL 的程序员控制甚至完全控制,这只会是令人烦恼的行为。而且你永远不应该写一些令人烦恼的行为。

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

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

他们确实帮助我掌握了它。到目前为止,他们帮助了无数人。他们的想法甚至不仅仅与 .NET 相关。

关于C# 如何记录 DLL 内的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62167843/

相关文章:

python - django 1.3 记录 timedrotatingfilehandler 在每次写入时截断文件

c - 使用 Curl 在 DLL 中程序退出之前的 HTTP 连接

c# - 获得焦点时突出显示 WPF 控件

python - 朴素贝叶斯分类问题 - ValueError : domain math error

c# - 多次调用相同的方法并显示进度

python - 哪个记录器在gunicorn 中输出这个?

c++ - 未调用 dll Hook 函数

c++ - 如何通过 Code::Blocks 中的静态链接创建独立程序

c# - 使用 MailKit 检查 imap 文件夹是否存在

c# - 如何在 C# 中声明一个类以便我可以链接方法?