Skip to content

Release v0.5.0

Pre-release
Pre-release

Choose a tag to compare

@fembina fembina released this 31 Jul 22:35
· 123 commits to main since this release
5234c2e

Features

  • Added a LogMessageArgument static class to create LogMessageArgument structs in a more concise way.
  • Added Emit methods to Logger that allow specifying the LogLevel directly.

Enhancements

  • Added a ToString override for the LogMessageArgument struct.
  • Added a ToFactory method for the LogMessageArgument struct.
  • Optimized methods in SimpleLogContextRenderer.

Fixes

  • Fixed a bug in LogContext construction when no renderers were available.

Other

  • Added tests.

Samples

New extensions for LogMessageArgument

// new
Logger.Debug
(
    static () => "{MethodName} is called with {NumberArgumentName} {NumberArgumentValue}",
    LogMessageArgument.Create(static () => nameof(SetNumber)),
    LogMessageArgument.Create(static () => nameof(number)),
    LogMessageArgument.Create(number, static number => number.ToString())
);

// old
Logger.Debug
(
    static () => "{MethodName} is called with {NumberArgumentName} {NumberArgumentValue}",
    new LogMessageArgument<LogMessageArgumentFactory>
    (
        static () => nameof(SetNumber),
        static factory => factory()
    ),
    new LogMessageArgument<LogMessageArgumentFactory>
    (
        static () => nameof(number),
        static factory => factory()
    ),
    new LogMessageArgument<int>
    (
        number,
        static number => number.ToString()
    )
);

New ToFactory method for LogMessageArgument

Logger.Debug
(
    static () => "{MethodName} is called with {NumberArgumentName} {NumberArgumentValue}",
    static () => nameof(SetNumber),
    static () => nameof(number),
    LogMessageArgument.Create(number, static number => number.ToString()).ToFactory()
);

New Emit methods for Logger

Logger.Emit(LogLevel.Info, "Example");

Full Changelog: v0.4.0...v0.5.0