我想将 SerilogWarning事件写入.NET 集合,以便将它们包含在给用户的报告中。如何将静态配置Log.Logger为写入类似 a 的内容static List<string<>?
我在提供的接收器列表中看到了Rx Observer,这是唯一一个似乎很容易使 .NET 对象可用的人,或者是否有我错过的明显替代方案?
或者,这是一种愚蠢的方法吗 - 有没有更好的方法来收集Warning事件以将其添加到面向用户的报告中?
class CollectionSink : ILogEventSink {
public ICollection<LogEvent> Events { get; } = new ConcurrentBag<LogEvent>();
public void Emit(LogEvent le) {
Events.Add(le);
}
}
var col = new CollectionSink();
Log.Logger = new LoggerConfiguration()
.WriteTo.Sink(col, LogEventLevel.Warning)
.CreateLogger();
// read col.Events....
Run Code Online (Sandbox Code Playgroud)
不确定这个会不会打字,但这基本上是我做过几次的方式。
| 归档时间: |
|
| 查看次数: |
719 次 |
| 最近记录: |