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

本文关键字:配置 应用程序 之间 共享 NLog | 更新日期: 2023-09-27 18:32:53

我有多个应用程序共享一个配置文件,该文件设置 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 配置中的小更改,而不必为每个应用程序保留不同版本的完整配置文件?

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

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

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

运行时配置的详细信息,请参阅NLog 配置 API 的文档