2015-11-19 147 views
1

我试图简化我们在多个项目中的log4net配置。模板Log4Net配置

我们有多个服务都可以创建日志。他们的appender在每个服务app.config中定义。这造成了很多重复。

我想log4net的配置转移离开这里,到一个Log4NetConfiguration.config文件,我可以链接到由类似于这个问题的答案接受每个项目:

Share log4net configuration across multiple projects

这样开发时我们只需要在一个地方更改配置 - 但用户可以根据自己的选择配置不同的服务日志文件。

我们从通用实用程序程序集中调用log4net.Config.XmlConfigurator.Configure() - 如何从运行的服务中加载相关版本的Log4NetConfiguration.config?

+0

将文件添加为链接时,它将被视为本地文件,并将被复制到bin目录,准备好加载到服务中:谨慎获取路径,并将其传递给新的'FileInfo'实例,允许你在调用'XmlConfigurator.ConfigureAndWatch(fileInfo)之前检查文件是否存在' - 如果log4net找不到文件,它不会抛出异常。 – stuartd

回答

1

根据StuartD的评论,它位于bin目录中。

因此,您可以使用Assembly.GetExecutingAssembly()。位置来获取与正在运行的应用程序相关的配置文件的位置。

然后按照建议使用XmlConfigurator.ConfigureAndWatch(fileInfo)。