Reputation: 7327
Is it possible to check if any errors has been logged to a ILogger
in Serilog?
var log = new LoggerConfiguration().CreateLogger();
SomeAlgorithm(log);
// How can I check if an error was logged?
Upvotes: 2
Views: 897
Reputation: 31832
A custom sink can do this, in a few lines of code.
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;
}
}
}
Then:
var detector = new ErrorDetector();
var log = new LoggerConfiguration()
.WriteTo.Sink(detector)
.CreateLogger();
// Later
if (detector.ErrorDetected) { ...
Upvotes: 8