【问题标题】:Custom LogEventLevel with Serilog使用 Serilog 自定义 LogEventLevel
【发布时间】:2018-10-04 19:10:59
【问题描述】:
我在 .Net 项目中使用 Serilog 和 Seq。我的主要目标是记录一些特定事件。
我想拥有自己的日志事件级别(如“警告”、“详细”、“信息”...)。
但我真的不知道是否有可能拥有我的自定义日志级别:
private static readonly ILogger Logger = Log.ForContext<MyController>();
.
.
.
Logger.MyCustomLogLevel(....);
有可能吗?
【问题讨论】:
标签:
.net
logging
seq
serilog
【解决方案1】:
虽然自定义关卡是不可能的,但想象一下您想要创建(逻辑上)和Important 关卡,您可以通过以下方式实现接近相同的目标:
static class LoggerExtensions
{
public static void Important(
this ILogger logger,
string messageTemplate,
params object[] args)
{
logger.ForContext("IsImportant", true)
.Information(messageTemplate, args);
}
}
用法:
Logger.Important("Hello, {Name}!", "World");
在序列中:
IsImportant = true
或者:
select count(*) from stream where IsImportant limit 10