DEV Community

Daniel Blackwell
Daniel Blackwell

Posted on • Edited on

The new .Net 5 Console Logging registration

.Net 5 has changed the way you can set up the console for logging.

You may have received this message on your change to .Net 5:

ConsoleLoggerOptions.TimestampFormat has been deprecated. Please use ConsoleFormatterOptions.TimestampFormat instead.

The builder.UseConsole() now looks like this under the covers:

// Microsoft.Extensions.Logging.ConsoleLoggerExtensions public static ILoggingBuilder AddConsole(this ILoggingBuilder builder) { builder.AddConfiguration(); builder.AddConsoleFormatter<JsonConsoleFormatter, JsonConsoleFormatterOptions>(); builder.AddConsoleFormatter<SystemdConsoleFormatter, ConsoleFormatterOptions>(); builder.AddConsoleFormatter<SimpleConsoleFormatter, SimpleConsoleFormatterOptions>(); builder.Services.TryAddEnumerable(ServiceDescriptor.Singleton<ILoggerProvider, ConsoleLoggerProvider>()); LoggerProviderOptions.RegisterProviderOptions<ConsoleLoggerOptions, ConsoleLoggerProvider>(builder.Services); return builder; } 
Enter fullscreen mode Exit fullscreen mode

So if you are wanting to change formatting, you can replace the services.AddConsole() with these extension methods:

services.AddLogging(opt => { // Provided by Microsoft.Extensions.Logging.Console opt.AddSimpleConsole(options => options.TimestampFormat = "[HH:mm:ss] "); opt.AddJsonConsole(options => { }); opt.AddSystemdConsole(options => { }); }); 
Enter fullscreen mode Exit fullscreen mode

Top comments (0)