2014-11-20 3 views
0

Я использую Quartz.net. В настоящее время я создаю проблему с настройкой log4net для записи журнала в файл. Он продолжает записывать записи журнала на консоль.Log4Net продолжает записывать журнал Quartz.Net на консоль

Вот мой App.config:

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 

    <configSections> 
     <section name="quartz" type="System.Configuration.NameValueSectionHandler, System, Version=1.0.5000.0,Culture=neutral, PublicKeyToken=b77a5c561934e089" /> 
     <sectionGroup name="common"> 
      <section name="logging" type="Common.Logging.ConfigurationSectionHandler, Common.Logging" /> 
     </sectionGroup> 
     <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" /> 
    </configSections> 

    <common> 
     <logging> 
      <factoryAdapter type="Common.Logging.Log4Net.Log4NetLoggerFactoryAdapter, Common.Logging.Log4Net1211"> 
       <arg key="configType" value="INLINE" /> 
      </factoryAdapter> 
     </logging> 
    </common> 

    <log4net> 

     <appender name="FileAppender" type="log4net.Appender.FileAppender"> 
      <file type="log4net.Util.PatternString" value="Logs\Main-%date{yyyy-MM-dd_HH-mm-ss}.log" /> 
      <appendToFile value="true" /> 
      <layout type="log4net.Layout.PatternLayout"> 
       <conversionPattern value="%date [%2thread] %-5level - %message%newline" /> 
      </layout> 
     </appender> 

     <root> 
      <level value="DEBUG" /> 
      <appender-ref ref="FileAppender" /> 
     </root> 

    </log4net> 

    <quartz> 
     <add key="quartz.scheduler.instanceName" value="MyScheduler" /> 
     <add key="quartz.threadPool.threadCount" value="3" /> 
     <add key="quartz.jobStore.type" value="Quartz.Simpl.RAMJobStore, Quartz" /> 
    </quartz> 

</configuration> 

А вот как я пытаюсь установить регистратор в C# код:

var nameValueCollection = new Common.Logging.Configuration.NameValueCollection(); 
var adapter = new Common.Logging.Log4Net.Log4NetLoggerFactoryAdapter(nameValueCollection);     
Common.Logging.LogManager.Adapter = adapter; 

Я из идей сейчас. Поблагодарите любую помощь.

ответ

3

Конфигурация выглядит правильно. Скорее всего, установка Common.Logging.LogManager.Adapter вручную перезаписывает адаптер, настроенный в конфигурации.

Я использую Quartz.net с адаптером log4net с почти точно такой же конфигурацией, и он работает так, как ожидалось, без использования какого-либо из Common.Logging API в коде.

+0

Это помогло, спасибо! – dmigo

Смежные вопросы