【问题标题】:NLog : Why is a config variable mandatory?NLog:为什么配置变量是强制性的?
【发布时间】:2011-04-19 10:17:51
【问题描述】:

我觉得这令人费解且违反直觉:

为什么会这样:

LoggingConfiguration config = LogManager.Configuration;
config.LoggingRules.Add(rule);
LogManager.Configuration = config;

虽然这不会(编辑:日志文件不会写入目标文件):

LogManager.Configuration.LoggingRules.Add(rule);

看到现成的代码 sn-ps 是如何传播的很有趣,而详尽的解释却如此稀缺

【问题讨论】:

  • 我并不反对你,但可能值得扩展“这不会 [工作]”
  • PS:现在有一个LogManager.Configuration.AddRule 没有这个问题

标签: c# logging nlog


【解决方案1】:

我没有检查代码,但我猜属性设置器中有一些逻辑。

恕我直言,它应该是一种方法,或者根本不应该公开配置。

【讨论】:

  • 我检查了 NLog 的源代码,你是对的。这是一个棘手的设计,这就是为什么在你明智地指出它之前,我什至没有想到它。我完全同意这令人困惑,如此重要的行为不应该“隐藏”在 setter 中。 Getter/ 和 Setter 旨在优先获取/设置,这是一种误用,因为调用它们只是为了触发嵌入 setter 的逻辑。谢谢
猜你喜欢
  • 2023-03-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-05
  • 2018-03-22
  • 1970-01-01
  • 2023-03-07
  • 1970-01-01
相关资源
最近更新 更多