Skip to content

Use Microsoft.Extensions.Logging as NHibernate logging provider

License

Notifications You must be signed in to change notification settings

akunzai/NHibernate.Extensions.Logging

Repository files navigation

NHibernate.Extensions.Logging

Build Status Code Coverage NuGet version

Use Microsoft.Extensions.Logging as NHibernate logging provider

Installation

dotnet add package NHibernate.Extensions.Logging

Usage

Console App

// ...
services.AddSingleton<ISessionFactory>(resolver =>
{
    var env = resolver.GetRequiredService<IHostEnvironment>();
    if (env.IsDevelopment())
    {
        var loggerFactory = resolver.GetRequiredService<Microsoft.Extensions.Logging.ILoggerFactory>();
        loggerFactory.UseAsNHibernateLoggerProvider();
    }
    // ...
    // return ISessionFactory implementation
});

ASP.NET Core

public class Startup
{
    // ...
    public ConfigureServices(IServiceCollection services)
    {
        services.AddSingleton<ISessionFactory>(resolver =>
        {
            var env = resolver.GetRequiredService<IWebHostEnvironment>();
            if (env.IsDevelopment())
            {
                var loggerFactory = resolver.GetRequiredService<Microsoft.Extensions.Logging.ILoggerFactory>();
                loggerFactory.UseAsNHibernateLoggerProvider();
            }
            // ...
            // return ISessionFactory implementation
        });
        // ...
    }
}

ASP.NET Core Minimal APIs

var builder = WebApplication.CreateBuilder(args);

builder.Services.AddSingleton<ISessionFactory>(resolver =>
{
    var env = resolver.GetRequiredService<IWebHostEnvironment>();
    if (env.IsDevelopment())
    {
        var loggerFactory = resolver.GetRequiredService<Microsoft.Extensions.Logging.ILoggerFactory>();
        loggerFactory.UseAsNHibernateLoggerProvider();
    }
    // ...
    // return ISessionFactory implementation
});
// ...