From e0a8481d0d2b563e0f484e20a57c090febccffc4 Mon Sep 17 00:00:00 2001 From: Aaron Stannard Date: Tue, 4 Jun 2024 15:25:15 -0500 Subject: [PATCH] WIP LogFiltering integration --- src/Akka.Logger.Serilog/SerilogLogger.cs | 29 ++++++++++++++++++++---- 1 file changed, 25 insertions(+), 4 deletions(-) diff --git a/src/Akka.Logger.Serilog/SerilogLogger.cs b/src/Akka.Logger.Serilog/SerilogLogger.cs index 006cd7a..a097b48 100644 --- a/src/Akka.Logger.Serilog/SerilogLogger.cs +++ b/src/Akka.Logger.Serilog/SerilogLogger.cs @@ -24,6 +24,10 @@ namespace Akka.Logger.Serilog /// public class SerilogLogger : ReceiveActor, IRequiresMessageQueue { + /// + /// Log filter. See https://getakka.net/articles/utilities/logging.html#filtering-log-messages for details. + /// + public LogFilterEvaluator Filter { get; } private readonly ILoggingAdapter _log = Logging.GetLogger(Context.System.EventStream, "SerilogLogger"); [MethodImpl(MethodImplOptions.AggressiveInlining)] @@ -97,10 +101,27 @@ private static void Handle(Debug logEvent) /// public SerilogLogger() { - Receive(Handle); - Receive(Handle); - Receive(Handle); - Receive(Handle); + Filter = Context.System.Settings.LogFilter; + Receive(e => + { + if(Filter.ShouldTryKeepMessage(e, out _)) + Handle(e); + }); + Receive(w => + { + if(Filter.ShouldTryKeepMessage(w, out _)) + Handle(w); + }); + Receive(i => + { + if(Filter.ShouldTryKeepMessage(i, out _)) + Handle(i); + }); + Receive(d => + { + if(Filter.ShouldTryKeepMessage(d, out _)) + Handle(d); + }); Receive(_ => { _log.Info("SerilogLogger started");