This article explains how to customize the logging configuration when using the NServiceBus host. For more details about logging configuration with the built-in profiles, refer to the NServiceBus.Host Profiles - Logging section.
Constructor of IConfigureThisEndpoint implementation
Logging should be customized in the constructor of the class that implements IConfigureThisEndpoint
. This is recommended, as this class is the earliest opportunity to initialize any custom logging framework.
Via endpoint configuration
To change the host's logging configuration, implement the IConfigureThisEndoint
interface. Provide the custom configuration in the Customize
method:
class CustomLogging : IConfigureThisEndpoint
{
public void Customize(BusConfiguration configuration)
{
LogManager.Use<DefaultFactory>();
}
}
Via profiles
Logging levels and sinks need to be defined before configuring other components, therefore logging profile configuration is kept separate from other profile behaviors and requires implementing a dedicated interface.
To customize logging for a given profile, create a class implementing IConfigureLoggingForProfile
where T
is the profile type:
public class YourProfileLoggingHandler :
NServiceBus.Hosting.Profiles.IConfigureLoggingForProfile<YourProfile>
{
public void Configure(IConfigureThisEndpoint specifier)
{
// setup logging infrastructure
LogManager.Use<Log4NetFactory>();
}
}
The host's profiles mechanism can be used to specify different logging levels (DEBUG
, WARN
, etc.) or targets (CONSOLE
, FILE
, etc.).
For more details refer to the Host Custom Logging, Host Profile Logging sample.