В конечном счете, это связано с настройкой log4Net, но, как правило, проблема не связана с журналированием.
Обычно я пытаюсь понять, как сделать в Microsoft Unity 2.0 что-то, эквивалентное тому, что можно получить с помощью Castle.Facilities.Logging.LoggingFacility. А именно, возможность объявить зависимость от регистратора и инициализировать регистратор с типом объекта, в который он вводится.
В духе теста стоит тысяча слов, вот что мне нужно:
class Logger_IOC_Tests
{
//[Test]
public void Logger_should_be_initialized_with_the_type_of_the_object_that_is_using_it()
{
var container = new UnityContainer();
/* Configuration Magic probably involiving registering either
* a custom IDependencyResolverPolicy or BuilderStrategy
* goes here...
*/
container.RegisterType<LoggerUser>(new ContainerControlledLifetimeManager());
var user = container.Resolve<LoggerUser>();
Assert.True(user.Logger.GetUserType() == user.GetType());
}
}
interface ILogger
{
Type GetUserType();
}
class Logger : ILogger
{
private readonly Type _type;
public Logger(Type type)
{
_type = type;
}
public Type GetUserType()
{
return _type;
}
}
class LoggerUser
{
public readonly ILogger Logger;
public LoggerUser(ILogger logger)
{
Logger = logger;
}
}