gpt4 book ai didi

c# - NLog 自定义日志级别值

转载 作者:行者123 更新时间:2023-11-30 17:17:12 25 4
gpt4 key购买 nike

我有一个数据库,我正在尝试将消息写入其中并想使用 ${level} 布局,但我需要将其转换为 int 值以引用我自己的存储日志记录级别的表。是否可以在配置中将级别转换为我的枚举?还有其他想法吗?

最佳答案

我没有检查过这个,但我怀疑你应该能够为 NLog 编写你自己的布局渲染器(插件)来做你想做的事。 NLog 是非常可插拔的:)

布局渲染器外观的快速示例(未测试...):

[LayoutRenderer("intLevel", UsingLogEventInfo = true)]
public class IntLevel : LayoutRenderer
{
protected override int GetEstimatedBufferSize(LogEventInfo logEvent)
{
return 1;
}

protected override void Append(StringBuilder builder, LogEventInfo logEvent)
{
switch(logEvent.Level.LowercaseName)
{
case "trace":
builder.Append(0);
break;
case "debug":
builder.Append(1);
break;
case "info":
builder.Append(2);
break;
case "warn":
builder.Append(3);
break;
case "error":
builder.Append(4);
break;
case "fatal":
builder.Append(5);
break;
default:
builder.Append(-1);
break;
}
}
}

关于c# - NLog 自定义日志级别值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6738856/

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