log4net работает только при вызове XmlConfigurator.Configure ()
Я это понимаюэто вопрос имеет было спросил несколько разно, к сожалению, я не смог заставить работать мою конфигурацию регистрации. Я должен был где-то сделать очень маленькую ошибку.
У меня есть веб-приложение .NET 4.5 MVC 4 / EF 5, и я пытаюсь заставить регистрацию работать. Решение имеет два проекта: один для объектов DAO и модели и один для веб-сайта. Файл App.Config выглядит следующим образом:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" requirePermission="false" />
</configSections>
<connectionStrings>
<add name="RebuildingTogetherEntities" connectionString="stuff..."/>
</connectionStrings>
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
</entityFramework>
<log4net configSource="Log.config" />
</configuration>
Тот же раздел log4net также был скопирован в файл Web.Config.
Я добавил следующее в оба файла AssemblyInfo.cs:
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "Log.config", Watch = true)]
«Copy To Output Directory» имеет значение true для обоих файлов Log.Config.
Похоже, что единственный способ заставить журналирование добавить в выходной файл, это вызвать XmlConfigurator.Configure () перед выполнением первого оператора логирования. Я думаю, я могу написать фасад, чтобы сделать это, когда я впервые получаю регистратор, но это просто неправильно.
Как я могу инициализировать регистратор, не вызывая XmlConfigurator вручную?