将 MessageTemplate 字符串传递给 Serilog 包装器
Passing an MessageTemplate String to a Serilog Wrapper
我有一个问题。
我有以下代码(在 C# 中):
public static void Warning(string log)
{
Serilog.Log.Warning(log);
}
我想传递一个如下所示的值:
Serilog.Log.Warning("Checked out order {0} for ${1:C}", order.Id, order.Total);
有没有什么方法可以从 Serilog 周围的包装器传递内插字符串(及其参数),以便我可以获得 MessageTemplate 的好处?
假设你想在 Log.Warning
周围有一个包装器,那么该方法应该有一条消息和一个参数:
public static void Warning(string msg, params object[] args)
{
Serilog.Log.Warning(msg, args);
}
用法将是:
MyLogWrapper.Warning("Checked out order {0} for ${1:C}", order.Id, order.Total);
考虑在消息中使用命名参数以充分利用完全结构化的日志记录:
MyLogWrapper.Warning("Checked out order {OrderId} for ${OrderTotal:C}", order.Id, order.Total);
我有一个问题。
我有以下代码(在 C# 中):
public static void Warning(string log)
{
Serilog.Log.Warning(log);
}
我想传递一个如下所示的值:
Serilog.Log.Warning("Checked out order {0} for ${1:C}", order.Id, order.Total);
有没有什么方法可以从 Serilog 周围的包装器传递内插字符串(及其参数),以便我可以获得 MessageTemplate 的好处?
假设你想在 Log.Warning
周围有一个包装器,那么该方法应该有一条消息和一个参数:
public static void Warning(string msg, params object[] args)
{
Serilog.Log.Warning(msg, args);
}
用法将是:
MyLogWrapper.Warning("Checked out order {0} for ${1:C}", order.Id, order.Total);
考虑在消息中使用命名参数以充分利用完全结构化的日志记录:
MyLogWrapper.Warning("Checked out order {OrderId} for ${OrderTotal:C}", order.Id, order.Total);