简单问题:看标题。我正在使用.NET 3.5。
精化: 我正在构建一个插件,它将在运行时加载到第三方应用程序中。主应用程序使用log4net作为其日志框架。但是,它不会公开根记录器,因此我们无法记录。 (我已经向上游开发者提出了这个问题,他们将在未来的版本中修复它,所以在此期间我需要提出其他的东西)
系统的另一个限制是,当它收到应该加载本地系统上不存在的插件的通知时,它将从它连接的服务器下拉该插件(如果它存在于服务器上) ),但它只能拉下插件所在的组件。这意味着没有外部程序集,也不能使用插件部署.config或任何其他文件。
这让我只有内置的.NET程序集和插件程序集中的所有内容。但是,我不想通过建立自己的另一个记录框架来重新发明轮子,所以我想知道这个问题的最佳方法是什么。
我更喜欢登录到文件,并希望避免将内容转储到Windows事件日志中。
答案 0 :(得分:10)
有两个主要选项:
作为.NET框架一部分的Trace
和Debug
类(在System.Diagnostics
命名空间内)可能是您最好的选择。它们提供了对各种运行时可配置侦听器进行轻量级日志记录的工具,可以写入文件,事件日志和其他几个地方。
听起来你不能在你的应用程序中添加任何额外的类,但是如果可以的话我会推荐Microsoft Enterprise Library,它是一个外部日志框架,由Microsoft提供,并且可以很好地与.NET代码。
答案 1 :(得分:2)
您可以查看Common.Logging infrastructure。它是一个围绕日志框架的外观,例如log4net和LAB。