如何使用 C# 中的变量动态更改文件名?我的想法是创建一个日志文件,例如Log_<UserId_From_DB>_${date:format=yyyy-MM-dd}.log
。
有任何想法吗?
另一种选择是使用全局诊断环境 - $(GDC):
在 C# 中设置值
GlobalDiagnosticsContext.Set("UserId_From_DB","42");
在配置(nlog.config)中:
<target type="file" filename="Log_${gdc:item=UserId_From_DB}_${date:format=yyyy-MM-dd}.log" ..>
请避免在运行时修改 NLog 变量(请参阅下面的先前答案)。它们应该被视为只读,因为它们不是线程安全的。如果重新加载 LoggingConfiguration,NLog 变量也会受到影响。
之前关于 NLog 变量的回答:
在 C# 中设置值
LogManager.Configuration.Variables["UserId_From_DB"] = "42";
在配置(nlog.config)中:
<target type="file" filename="Log_${var:UserId_From_DB}_${date:format=yyyy-MM-dd}.log" ..>
如果再次设置该值,文件名将自动更改。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)