在应用程序之间共享NLog配置,略有不同

时间:2012-05-02 20:48:16

标签: c# nlog

我有多个应用程序共享一个配置文件,设置NLog部分看起来像这样

<targets>
     <target name="eventlog" type="EventLog" source="ApplicationX" log="Application"
         layout="${date}: ${message} ${stacktrace}" />
</targets>

每个应用程序需要的唯一区别是更改源

我尝试过的是在主要设置

中的每个应用程序的开头
     var target = ((EventLogTarget) _logger.Factory.Configuration.FindTargetByName("eventLog"));
     target.Source = "Application1";

这似乎对日志输出没有影响 是否有任何编程方式可以对NLog的设置进行这样的调整?

有没有其他方法可以管理NLog配置中的小更改,而无需为每个应用程序保留不同版本的完整配置文件?

1 个答案:

答案 0 :(得分:2)

您应该从LogManager而不是记录器的工厂获取配置实例:

EventLogTarget target = (EventLogTarget)LogManager.Configuration.FindTargetByName("eventlog");
target.Source = "Application1";

有关NLog运行时配置的更多信息,请参阅documentation for NLog Configuration API