【问题标题】:How do I override default nlog configuration?如何覆盖默认的 nlog 配置?
【发布时间】:2012-07-10 03:40:24
【问题描述】:

我们发布了一个内部使用 nlog 的日志记录框架程序集。我们还在我们的程序集中提供了一个嵌入式 nlog 配置作为资源,并在启动时读取它(我们的包装器中的一个静态构造函数,它使用 XmlLoggingConfiguration 类包装了 nlog 包装器)。

我们现在希望开发人员能够通过外部文件为他们自己的记录器指定/覆盖其他配置(使用相同的 nlog 配置文件格式)。

我们可以:

  • 在我们的嵌入式 nlog 配置文件中引用包含文件?包含文件的路径是如何解析的?如果我们这样做,包含文件的内容是否会覆盖我们在启动时读取的嵌入式 nlog 配置的内容?
  • 开发者可以使用nlog配置部分吗?这部分的内容是否会覆盖我们以编程方式指定的默认配置?

还有其他选择吗?

【问题讨论】:

    标签: nlog


    【解决方案1】:

    include文件的路径是如何解析的?

    您可以在包含的文件名中使用:

    1. 布局渲染器,例如${baseDir}
    2. nlog variables

    如果生成的文件名不是绝对的,它将与原始 NLog 配置所在的目录组合在一起,但在您的情况下这可能为空,因此您仅限于前 2 个选项。

    包含文件的内容是否会覆盖嵌入式 nlog 配置的内容?

    不,这个内容被添加到嵌入配置的内容中。

    nlog 配置部分的内容是否会覆盖我们以编程方式指定的默认配置?

    当您以编程方式设置配置时,您会覆盖之前设置的任何配置并禁用自动配置发现,包括来自应用程序配置文件或 NLog.config 的配置发现。

    但您可以在设置嵌入值之前第一次检查配置是否不为空。这将触发自动发现,如果找到任何日志记录配置,则返回值将非空。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-07-04
      • 1970-01-01
      • 2021-04-11
      • 2020-02-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多