如何将Serilog事件写入.NET集合?

CAD样例

我想将SerilogWarning事件写入.NET集合,以便可以将其包含在给用户的报告中。Log.Logger如何配置静态以写入类似的东西static List<string<>

在提供的接收器列表中看到了Rx Observer,这是似乎唯一使.NET对象可用的唯一接收器,还是我错过了明显的替代方法?

或者,这是一种愚蠢的方法吗?是否有更好的方法来收集Warning事件以整理成面向用户的报告?

尼古拉斯·布鲁姆哈特(Nicholas Blumhardt)
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....

不确定此类型是否会进行类型检查,但这实际上是我几次完成的方式。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章