Centralise the Ldind logic (#61)

This commit is contained in:
Patrick Stevens
2025-06-21 13:53:23 +01:00
committed by GitHub
parent f9e03f4340
commit c747d6eb3a
14 changed files with 804 additions and 266 deletions

View File

@@ -23,6 +23,7 @@ module LoggerFactory =
let makeTest () : (unit -> LogLine list) * ILoggerFactory =
// Shared sink for all loggers created by the factory.
let sink = ResizeArray ()
let isEnabled (logLevel : LogLevel) : bool = logLevel >= LogLevel.Information
let createLogger (category : string) : ILogger =
{ new ILogger with
@@ -31,9 +32,13 @@ module LoggerFactory =
member _.Dispose () = ()
}
member _.IsEnabled _logLevel = true
member _.IsEnabled l = isEnabled l
member _.Log (logLevel, eventId, state, ex, formatter) =
if not (isEnabled logLevel) then
()
else
let message =
try
formatter.Invoke (state, ex)