Skip to content

Expose 'IServiceProvider' on new 'UseSerilog' overload #169

Closed
@julealgon

Description

@julealgon

The existing UseSerilog overloads do not provide access to the underlying IServiceProvider and thus don't support any kind of dependency injection.

I needed to check a settings class on my side using IOptions<T> and use these values as paraments to sink configuration. I ended up moving the log configuration into the startup class, dropping the use of UseSerilog and instead relying on ILoggerFactory.AddSerilog inside a custom configuration class that I injected inside the Startup's Configure method.

If the IServiceProvider used in the singleton registration inside UseSerilog was exposed as one of the parameters, I could've leveraged that to fetch my options instead.

From what I gathered from the implementation, it would just be a matter of moving some of the code inside the AddSingleton lambda, firing the user-provided lambda there and thus having access to the IServiceProvider.

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