Skip to content

Use registered ILogger from DI container for SerilogLoggerProvider #281

@matherm-aboehm

Description

@matherm-aboehm

In commit ae4991f the registration of SerilogLoggerProvider was changed by using a factory instead of a direct instance, when it should be disposed by the DI container.
I want to request a new change for this line:

builder.Services.AddSingleton<ILoggerProvider, SerilogLoggerProvider>(_ => new SerilogLoggerProvider(logger, true));

To this:

builder.Services.AddSingleton<ILoggerProvider, SerilogLoggerProvider>(sp => new SerilogLoggerProvider(logger ?? sp.GetService<ILogger>(), true));

This would give us now the opportunity to also use a registered Serilog.ILogger from the service provider instead of providing it with a direct instance beforehand. And if it was not registered, the old behavior of using the static Serilog.Log would still be intact.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions