-
Notifications
You must be signed in to change notification settings - Fork 19
Configuration in Code
adrianluisgonzalez edited this page Oct 19, 2012
·
1 revision
slf4net allows configuration in code via the slf4net.LoggerFactory class SetResolverFactory(IFactoryResolver resolver) static method.
Using an IoC container, you can configure the LoggerFactory like this:
private void InitLogging(IContainer container)
{
// Get logger from the container and set the resolver
var factory = container.Resolve<ILoggerFactory>();
var resolver = new SimpleFactoryResolver(factory);
LoggerFactory.SetFactoryResolver(resolver);
}
If you want to programmatically use the log4net ILoggerFactory, that can be done like this:
private void InitLogging()
{
// Create log4net ILoggerFactory and set the resolver
var factory = new slf4net.log4net.Log4netLoggerFactory();
var resolver = new SimpleFactoryResolver(factory);
LoggerFactory.SetFactoryResolver(resolver);
}
The class SimpleFactoryResolver implements the IFactoryResolver interface like this:
using slf4net;
namespace slf4net.Samples
{
/// <summary>
/// A simple implementation of IFactoryResolver
/// </summary>
public class SimpleFactoryResolver : IFactoryResolver
{
private ILoggerFactory _factory;
/// <summary>
/// The constructor takes the ILoggerFactory to be used by slf4net
/// </summary>
public SimpleFactoryResolver(ILoggerFactory factory)
{
_factory = factory;
}
/// <summary>
/// IFactoryResolver GetFactory() implementation
/// </summary>
public ILoggerFactory GetFactory()
{
return _factory;
}
}
}