Serilog在C#中进行条件记录

Ara*_*ash 3 c# serilog asp.net-core-mvc asp.net-core

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

1)SQL Server表.

2)在日志记录期间,如果SQL Server数据库突然变得不可用,我们希望通过将日志条目写入共享网络文件夹来继续日志记录.

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

这种情况是Serilog(https://serilog.net/)可以帮助我们实现的吗?

Nic*_*rdt 5

不,这不是你所描述的Serilog水槽的内置.

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