是否可以检查 Serilog 中是否已记录任何错误ILogger
?
var log = new LoggerConfiguration().CreateLogger();
SomeAlgorithm(log);
// How can I check if an error was logged?
Run Code Online (Sandbox Code Playgroud)
自定义接收器只需几行代码即可完成此操作。
class ErrorDetector : ILogEventSink {
volatile bool _errorDetected;
public bool ErrorDetected { get { return _errorDetected; } }
public void Emit(LogEvent evt) {
if (evt.Level == LogEventLevel.Error ||
evt.Level == LogEventLevel.Fatal) {
_errorDetected = true;
}
}
}
Run Code Online (Sandbox Code Playgroud)
然后:
var detector = new ErrorDetector();
var log = new LoggerConfiguration()
.WriteTo.Sink(detector)
.CreateLogger();
// Later
if (detector.ErrorDetected) { ...
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
733 次 |
最近记录: |