C# 中 Serilog 的条件日志记录

Conditional logging by Serilog in C#

有一个 Asp.Net 核心项目要求,我们需要将错误、警告、信息、异常等记录到以下流中:

1) SQL 服务器 table.

2) 在记录过程中,如果SQL 服务器数据库突然不可用,我们希望通过将日志条目写入共享网络文件夹来继续记录。

3) 同样,如果在记录期间,共享网络文件夹变得不可用,那么我们要继续记录到本地文件夹。

这个场景是不是Serilog(https://serilog.net/)可以帮我们实现的?

不,这不是内置在您所描述的 Serilog 接收器中。

同时启用所有三个接收器可以实现大致相同的效果 - 如果文件 I/O 是一个问题,您可以通过写入 Serilog.Sinks.Async 来避免额外的延迟。