using MsLogLevel = Microsoft.Extensions.Logging.LogLevel; namespace ROLAC.API.Entities.Logging; /// /// Persisted severity for system and audit logs. Byte-backed so it stores compactly /// as smallint and sorts/filters by ordinal. Deliberately omits the /// sentinel (value 6) — "None" means "log nothing" and /// is meaningless once a row already exists. /// public enum LogLevelEnum : byte { Trace = 0, Debug = 1, Information = 2, Warning = 3, Error = 4, Critical = 5, } public static class LogLevelMap { /// /// Maps a framework to our persisted enum. /// falls through to /// (it never reaches the sink because the floor filter drops it first). /// public static LogLevelEnum FromMs(MsLogLevel level) => level switch { MsLogLevel.Trace => LogLevelEnum.Trace, MsLogLevel.Debug => LogLevelEnum.Debug, MsLogLevel.Information => LogLevelEnum.Information, MsLogLevel.Warning => LogLevelEnum.Warning, MsLogLevel.Error => LogLevelEnum.Error, MsLogLevel.Critical => LogLevelEnum.Critical, _ => LogLevelEnum.Critical, }; }