使用NLog,我可以添加以下属性:
eventInfo = new LogEventInfo();
eventInfo.Properties.Add(name, value);
和带有以下内容的变量:
loggerInstance = LogManager.GetLogger(typeName);
loggerInstance?.Factory.Configuration.Variables.Add(name, value);
然后我问自己:有什么区别?环顾四周,但没有找到明确的解释,只是警告过gdc,mdc和mdlc已过时。我应该将这些用于哪个目的?-我可能两者都需要(或都不需要)。
答案 0 :(得分:0)
有什么区别
eventInfo.Properties
:关于一个logEvent范围的上下文。您可以使用${event-properties:myPropName}
Configuration.Variables
:在nlog.config中使用<variable /
>使用的变量。您可以在配置中使用它们,如下所示:
${var:myVar}
-动态的,但仅适用于Layout
类型的属性${myVar}
-对于所有属性,将在解析nlog.config时应用gdc,mdc和mdlc已过时
GDC,MDC和MDLC类已过时,但不是 GlobalDiagnosticsContext
MappedDiagnosticsContext
和MappedDiagnosticsLogicalContext
。
这些是以下对象的线程安全上下文:
GlobalDiagnosticsContext
:完整的申请。使用${gdc:myKey}
MappedDiagnosticsContext
:当前线程,但是由该线程创建的线程。使用${mdc:myKey}
MappedDiagnosticsLogicalContext
:当前线程,包括由此线程创建的线程。使用${mdlc:myKey}
渲染。有关更多信息,请参见https://nlog-project.org/config/?tab=layout-renderers&search=context