gpt4 book ai didi

编程配置中的 c# NLog 自定义定界符

转载 作者:行者123 更新时间:2023-12-03 22:14:59 26 4
gpt4 key购买 nike

我在 VS2019 中使用 NLog,并且在首次使用之前以编程方式设置记录器(没有外部 nlog 配置文件)时,我在那里定义了记录器

var logConsole = new NLog.Targets.ColoredConsoleTarget()
{
Name = "logconsole",
Layout = "${longdate}|${level:upperCase=true}|${message}"
};
config.LoggingRules.Add(new NLog.Config.LoggingRule("*", LogLevel.Debug, logConsole));

目前我在那里硬编码了分隔符 |

如何制作定界符变量?定义一个 string delim = "|",然后将 Layout 设置为 Layout = "${longdate}${delim}${level:upperCase=true}${delim}${message} " 在这里不起作用。

最佳答案

您可以在 NLog 中为此使用上下文构造,例如GlobalDiagnosticsContext

例子:

var logConsole = new NLog.Targets.ColoredConsoleTarget()
{
Name = "logconsole",
Layout = "${longdate}${gdc:item=delimiter}${level:upperCase=true}${gdc:item=delimiter}${message}"
};
config.LoggingRules.Add(new NLog.Config.LoggingRule("*", LogLevel.Debug, logConsole));

并在你的代码中设置:

GlobalDiagnosticsContext.Set("delimiter", "|");

您可以在其他地方的代码中更改分隔符。

GlobalDiagnosticsContext 对于整个应用程序是全局的。如果您需要更有限的范围,那也是可能的!参见 NLog - Context

关于编程配置中的 c# NLog 自定义定界符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60342421/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com