gpt4 book ai didi

c# - 在略有不同的应用程序之间共享 NLog 配置

转载 作者:太空宇宙 更新时间:2023-11-03 11:22:44 25 4
gpt4 key购买 nike

我有多个应用程序共享一个配置文件,该配置文件将 NLog 部分设置为如下所示

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

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

我尝试做的是在顶部 Main 设置中的每个应用程序开始时

     var target = ((EventLogTarget) _logger.Factory.Configuration.FindTargetByName("eventLog"));
target.Source = "Application1";

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

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

最佳答案

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

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

有关 NLog 运行时配置的更多信息,您可以在 documentation for NLog Configuration API 中找到

关于c# - 在略有不同的应用程序之间共享 NLog 配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10421456/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com