Darthg8r
Darthg8r

Reputation: 12675

NServicebus with NLog

I'm trying to figure out how to configure my asp.net core app, that already works with NLog, so that NServiceBus will use it for its internal logging. The current NLog config works perfectly.

NServiceBus refers to this, but I haven't found it helpful.

https://docs.particular.net/samples/logging/extensions-logging/

public class Program
{
    public static void Main(string[] args)
    {
        CreateHostBuilder(args).Build().Run();
    }

    public static IHostBuilder CreateHostBuilder(string[] args)
    {

        return Host.CreateDefaultBuilder(args)
            .UseNServiceBus(hostBuilderContext =>
            {
                var endpointConfiguration = new EndpointConfiguration("MySite");
                endpointConfiguration.EnableInstallers();
                var transport = endpointConfiguration.UseTransport<AzureServiceBusTransport>();
                transport.ConnectionString(
                    "");

                var persistence =
                    endpointConfiguration.UsePersistence<AzureStoragePersistence, StorageType.Sagas>();
                persistence.ConnectionString(
                    "");
                persistence.CreateSchema(true);

                //endpointConfiguration.SendOnly();
                endpointConfiguration.EnableUniformSession();
                persistence.AssumeSecondaryIndicesExist();
                return endpointConfiguration;
            })
            .ConfigureWebHostDefaults(webBuilder =>
            {
                webBuilder.ConfigureLogging(x =>
                {
                    x.ClearProviders();
                    x.SetMinimumLevel(LogLevel.Trace);
                });
                webBuilder.UseStartup<Startup>();
                webBuilder.UseNLog();
            });
    }
    }

Upvotes: 0

Views: 230

Answers (2)

Daniel Marbach
Daniel Marbach

Reputation: 2314

Upgrade to NServiceBus.Extensions.Hosting 1.1.0 which brings in built-in support for Microsoft.Extensions.Logging. As long as the logging is configured before UseNServiceBus (order is important on the generic host)

Upvotes: 1

Rolf Kristensen
Rolf Kristensen

Reputation: 19857

What happens if you do this:

return Host.CreateDefaultBuilder(args)
    .ConfigureWebHostDefaults(webBuilder => webBuilder.UseStartup<Startup>())
    .ConfigureLogging(x =>
    {
        x.ClearProviders();
        x.SetMinimumLevel(LogLevel.Trace);
    })
    .UseNServiceBus(hostBuilderContext =>
        {
            var endpointConfiguration = new EndpointConfiguration("MySite");
            endpointConfiguration.EnableInstallers();
            var transport = endpointConfiguration.UseTransport<AzureServiceBusTransport>();
            transport.ConnectionString(
                "");

            var persistence =
                endpointConfiguration.UsePersistence<AzureStoragePersistence, StorageType.Sagas>();
            persistence.ConnectionString(
                "");
            persistence.CreateSchema(true);

            //endpointConfiguration.SendOnly();
            endpointConfiguration.EnableUniformSession();
            persistence.AssumeSecondaryIndicesExist();
            return endpointConfiguration;
        })
    .UseNLog();

Upvotes: 0

Related Questions