使用 Serilog 自定义 LogEventLevel
Custom LogEventLevel with Serilog
我在 .Net 项目中使用 Serilog 和 Seq。我的主要 objective 是记录一些特定的事件。
我想拥有自己的日志事件级别(如“警告”、“详细”、“信息”...)。
但我真的不知道是否有可能让我的自定义日志级别有这个:
private static readonly ILogger Logger = Log.ForContext<MyController>();
.
.
.
Logger.MyCustomLogLevel(....);
可以吗?
Serilog 不支持自定义日志级别。
虽然自定义关卡是不可能的,但假设您想创建(逻辑上)和 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
我在 .Net 项目中使用 Serilog 和 Seq。我的主要 objective 是记录一些特定的事件。 我想拥有自己的日志事件级别(如“警告”、“详细”、“信息”...)。 但我真的不知道是否有可能让我的自定义日志级别有这个:
private static readonly ILogger Logger = Log.ForContext<MyController>();
.
.
.
Logger.MyCustomLogLevel(....);
可以吗?
Serilog 不支持自定义日志级别。
虽然自定义关卡是不可能的,但假设您想创建(逻辑上)和 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