简单的问题:看标题。我使用.NET 3.5。在.NET中是否有内置的日志记录框架?
详述: 我正在构建一个插件,它将在运行时加载到第三方应用程序中。主应用程序使用log4net作为其日志框架。但是,它不公开根记录器,所以我们无法登录。 (我已经向上游开发者提出了这个问题,他们将在未来发布的版本中修复此问题,因此在此期间我需要提供其他内容)
系统的另一个限制是当它收到通知它应该加载一个本地系统中不存在的插件,它将从它所连接的服务器上拉下该插件(如果它存在于服务器上),但它只能拉下插件所在的程序集。这意味着没有外部程序集,也没有.config或任何其他文件可以与插件部署。
这让我只有内置的.NET程序集和我的插件程序集中的所有东西。但是,我不想通过构建自己的另一个日志记录框架来重新发明轮子,所以我想知道这个问题的最佳方法是什么。
我宁愿记录到文件,也想避免将东西转储到Windows事件日志中。
“它不公开根记录器” - 你不能只添加一个对log4net.dll的引用并直接访问根记录器吗? – Joe 2010-01-29 05:59:41
我试着创建我自己的根记录器,并试图使用父应用程序'无济于事。 Log4net只允许每个应用程序使用一个根记录器,而父应用程序已经创建一个。如果他们暴露在某个地方,我可以使用它,但事实并非如此。 我不确定它是每个应用程序的一个根记录器还是每个AppDomain的一个。如果它是每个AppDomain的一个,我可以尝试从我的插件创建我自己的AppDomain,然后创建我自己的根记录器。 – alimbada 2010-01-29 18:53:12