4

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

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

我们可以吗:

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

还有其他选择吗?

4

1 回答 1

1

包含文件的路径是如何解析的?

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

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

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

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

不,此内容被添加到嵌入式配置的内容中。

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

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

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

于 2015-01-03T02:41:23.213 回答