Учитывая, что у вас есть
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "Log4Net.config", Watch = true)]
в вашем файле AssemblyInfo.cs, когда конфигурируется Log4Net?Это при запуске приложения или при первом использовании регистратора?
Файл конфигурации используется, когда вы вызываете класс LoggerManager. Обычно это вызвано вызовом LogManager.GetLogger.
LoggerManager
Подробнее см. http://logging.apache.org/log4net/release/sdk/log4net.Config.XmlConfiguratorAttribute.html; конкретно примечание:
Log4net будет искать только сборку атрибуты конфигурации уровня один раз. При использовании уровня сборки log4net атрибуты для управления Конфигурация log4net вы должны убедитесь, что первый звонок на любой из методы LoggerManager сделаны из сборка с конфигурацией атрибуты.
Цитата с сайта Apache log4net:
Поэтому, если вы используете атрибуты конфигурации, вы должны вызвать log4net, чтобы позволить ему читать атрибуты.Простой вызов LogManager.GetLogger вызовет чтение и обработку атрибутов в вызывающей сборке.Поэтому крайне важно сделать запись в журнале как можно раньше во время запуска приложения и, конечно, до того, как какие-либо внешние сборки были загружены и вызваны.http://logging.apache.org/log4net/release/manual/configuration.html
Вот хорошая статья о том, как убедиться, что конфигурация настроена и работает должным образом: http://www.fooji.net/blog/post/2010/04/27/logging-log4net-e28093-part-iii.aspx
По сути, вам нужно либо сделать вызов регистрации(который настраивает log4net, если он еще не настроен) или использует DOMConfigurator для ручной настройки log4net.