2012-01-20 3 views
8

log4net докладывает:log4net, Что с этой конфигурацией

Нет appenders не может быть найдено для регистратора log4net: Logger: Пожалуйста инициализировать систему log4net правильно.

У меня есть самостоятельный log4net конфигурационный файл:

<!--?xml version="1.0"?--> 
<configuration> 
    <configsections> 
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=1b44e1d426115821" /> 
    </configsections> 
    <log4net> 
    <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender"> 
     <file value="c:\temp\log.txt" /> 
     <appendToFile value="true" /> 
     <rollingStyle value="Size" /> 
     <maxSizeRollBackups value="10" /> 
     <maximumFileSize value="5MB" /> 
     <staticLogFileName value="true" /> 
     <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" /> 
     </layout> 
    </appender> 


    </log4net> 
</configuration> 

..и это приложение стартовый код

private static ILog logger; 
protected void Application_Start(object sender, EventArgs e) 
{ 
    ////This tells log4net where to go and look for its configuration file and also to watch it for any changes 
    log4net.Config.XmlConfigurator.ConfigureAndWatch(new System.IO.FileInfo(@"C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\Config\Moogle\Log4Net.config")); 
    logger = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); 
    logger.Debug("Application_Start Fired"); 

ответ

18

Вы только определили Appender. Вам также необходимо определить корневой регистратор и регистратор, чтобы использовать приложение (они могут быть одним и тем же журналом, если вам нужен только один). Добавьте следующий корневой элемент ниже в конфигурацию log4net.

<root> 
    <level value="DEBUG" /> 
    <appender-ref ref="RollingLogFileAppender" /> 
</root> 
+3

Не хотел бы беспокоить 5-летний вопрос, но кто-то может найти его полезным, потому что я потратил около двух часов, прежде чем осознать это. По-видимому, имя приложения и значения appender-ref зависят от регистра. Я определил 'ref =" ADONetAppender "' в корне и '<имя-appender = AdoNetAppender '' в определении appender, из-за которого регистратор вообще не нашел appender ... –

+0

Не было корневого элемента. Я смог создать файл регистрации, но потратил впустую 2 часа, пробуя все разные проблемы с инициализацией, проблемы с настройкой и т. Д., Это решило мою проблему – hanzolo