C# 是否可以设置log4net,以便将一个共享配置XML文件用于许多Windows服务项目?

C# 是否可以设置log4net,以便将一个共享配置XML文件用于许多Windows服务项目?,c#,windows-services,log4net,log4net-configuration,C#,Windows Services,Log4net,Log4net Configuration,我有几个Windows服务项目将安装在同一个域中。每个项目都有一个company.core.common项目的引用,我在其中放置了所有Windows服务项目要使用的共享方法和属性。我想将log4net作为所有Windows服务项目的日志解决方案来实现,但我不需要将XML配置文件的部分复制并粘贴到每个Windows服务项目的app.config或维护多个配置文件。出于维护目的,我只希望所有服务都有一个log4net配置文件 有没有一种方法可以将log4net配置XML放入company.core.

我有几个Windows服务项目将安装在同一个域中。每个项目都有一个company.core.common项目的引用,我在其中放置了所有Windows服务项目要使用的共享方法和属性。我想将log4net作为所有Windows服务项目的日志解决方案来实现,但我不需要将XML配置文件的部分复制并粘贴到每个Windows服务项目的app.config或维护多个配置文件。出于维护目的,我只希望所有服务都有一个log4net配置文件

有没有一种方法可以将log4net配置XML放入company.core.common项目中并实例化记录器

如果是,那么由于所有Windows服务项目都引用了core.common项目,然后,他们可以将using company.core.common语句添加到类文件中,然后类中的方法可以将日志消息写入company.core.common.logger,其中logger是company.core.common项目中log4net日志对象的实例


我的服务项目都将记录到一个AdonNetAppender上,该AdonNetAppender将为根记录器写入SQL Server数据库。

我认为您可以。你必须做两件事:

在运行windows服务的计算机中创建“共享”应用程序配置部分log4net的一个文件。 将共享log4net从sym链接文件合并到原始文件。请参阅合并另一部分配置文件中的应用程序配置部分。
我没有完全理解之前发布的答案。这个问题源于这样一个事实:我最初并不理解DLL项目不需要有自己的log4net配置文件分配。只需将配置文件放入引用DLL的可执行项目中。