Skip to content

Releases: falko-code/zero-logger

Release v0.8.0

18 Sep 00:45
7985fb7

Choose a tag to compare

Release v0.8.0 Pre-release
Pre-release

Full Changelog: v0.7.0...v0.8.0

Release v0.7.0

16 Sep 01:47
6fcd752

Choose a tag to compare

Release v0.7.0 Pre-release
Pre-release

Full Changelog: v0.6.0...v0.7.0

Release v0.6.0

22 Aug 08:16
5df6b49

Choose a tag to compare

Release v0.6.0 Pre-release
Pre-release

Full Changelog: v0.5.0...v0.6.0

Release v0.5.0

31 Jul 22:35
5234c2e

Choose a tag to compare

Release v0.5.0 Pre-release
Pre-release

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

Release v0.4.0

27 Jul 23:32
60734a7

Choose a tag to compare

Release v0.4.0 Pre-release
Pre-release

Features

  • Added LoggerFactoryExtensions where new extensions that allow creating a Logger directly from a Type using CreateLogger methods.
  • Introduced LoggerRuntimeExtensions where provides a more modern methods for initializing LoggerRuntime.
  • Implemented IDisposable for LoggerRuntime.
  • Added a LoggerFactory field to LoggerRuntime that directly contains the relevant LoggerFactory.
  • Added support for IFormattable in generic log arguments for the Logger.
  • Added support for DefaultInterpolatedStringHandler in the Logger.

Enhancements

  • Removed CreateLoggerOfObject and CreateLoggerOfMethod methods from LoggerFactory.
  • Renamed CreateLoggerOf[???] methods in LoggerFactory to CreateLogger methods.
  • Optimized methods in LoggerFactory.
  • Optimized methods in LoggerContextBuilder, especially the Build method.
  • Improved performance of LoggerRuntime methods.
  • Optimized DateTimeOffsetProvider on Linux.

Fixes

  • Fixed file flushing in LoggerFileTarget.

Other

  • Updated License and Company Info.
  • Added Package Icon.
  • Updated Dependencies.

Full Changelog: 8a7b7d...v0.4.0

Release v0.3.0

02 May 22:38

Choose a tag to compare

Release v0.3.0 Pre-release
Pre-release

Features

  • Made LoggerRuntime a sealed class containing a Global instance of self (You can create many scoped LoggerRuntime's).
  • Made LoggerFactory a sealed class containing a Global instance of self that references the Global instance of LoggerRuntime (Watch Examples).
  • Add two properties to LogLevels: None and FatalOrAbove.

Enhancements

  • Optimize DateTimeOffset formatting in SimpleLogContextRenderer for faster rendering.
  • Logs with unsupported LogLevel values are ignoring more efficiently.
  • Move LogLevel.IsEnabled to extension method in LogLevelExtensions.
  • Add ValueStringBuilder.Append method for fixed SpanAction, allowing faster span filling without unnecessary string allocations.

Fixes

  • Fix incorrect rendering of DateTimeOffset milliseconds in SimpleLogContextRenderer.

Full Changelog: v0.2.0...v0.3.0

Release v0.2.0

29 Apr 04:46

Choose a tag to compare

Release v0.2.0 Pre-release
Pre-release

Features

  • Add LoggerConsoleTarget and Falko.ZeroLogger.Targets.Console package for it (but the logic is primitive for now).
  • Add support for seconds and milliseconds in DateTimeOffset formatting in SimpleLogContextRenderer.
  • Add support for .NET 8 (but it may be slower and involve more allocations).

Enhancements

  • Optimize ValueStringBuilder for faster string building (only for .NET 9).
  • Optimize DateTimeOffset formatting in SimpleLogContextRenderer for faster building.

Full Changelog: v0.1.0...v0.2.0

Release v0.1.0

28 Apr 23:59

Choose a tag to compare