Сделайте у Вас есть следующий атрибут в Вашем AssemblyInfo.cs
файл:
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "Log4Net.config", Watch = true)]
и код как это в начале каждого класса, который требует регистрирующейся функциональности:
private static readonly ILog log =
LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
у меня есть сообщение в блоге, содержащее это и другую информацию здесь .
@Mitch, Это поворачивается, там файл с [assembly:...] объявление, но это не имело свойства ConfigFile.
, Как только я добавил его и указал на него на Log.config, это начало работать. Я думал бы, что это будет работать как все другие разделы конфигурации (т.е. AppSettings) и принимать внешние файлы конфигурации без модификации.
у Нас нет второго оператора, который Вы упомянули, поскольку мы обертываем его в глобального статического поставщика журнала.
В этой проблеме обнаружен открытый дефект . Log4Net не поддерживает атрибут configSource элементов конфигурации. Чтобы использовать чисто конфигурационный файл, используйте ключ log4net.Config в appSettings.
Шаг 1: Включите определение раздела нормальной конфигурации:
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
</configSections>
Шаг 2: Используйте волшебный ключ log4net.Config в appSettings.
<appSettings>
<add key="log4net.Config" value="log4net.simple.config" />
</appSettings>
Шаг 3: Внесите исправление для исправления обработки configSource.
Убедитесь, что для вашего файла log4net.config заданы следующие свойства:
Действие сборки: содержимое
Копировать в выходной каталог: всегда копировать