2017-01-23 63 views
1

問題我正在使用Common.Logging.Log4Net.Universal以xml格式寫入日誌,以便我可以使用YALV讀取它! 但是,我看不到日誌正在爲此生成。 我已經將這種技術用於正常的log4net庫,並且沒有任何問題。 這裏是我的「的web.config」文件中的相關配置:使用Common.Logging.Log4Net.Universal以YALV的xml格式寫入日誌以解析

<configSections> 
    <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.Universal.Log4NetFactoryAdapter, Common.Logging.Log4Net.Universal" > 
     <arg key="configType" value="FILE"/> 
     <arg key="configFile" value="~/log4net.config" /> 
     </factoryAdapter> 
    </logging> 
    </common> 

這裏去我的「log4net.config」文件:

<configuration> 
    <log4net> 
     <appender name="FileAppender" type="log4net.Appender.FileAppender"> 
     <file value="C://Logs//mylogfile.xml" type="log4net.Util.PatternString"/> 
     <appendToFile value="true" /> 
     <lockingModel type="log4net.Appender.FileAppender+MinimalLock" /> 
     <layout type="log4net.Layout.XmlLayoutSchemaLog4j"> 
      <locationInfo value="true"/> 
     </layout> 
     <filter type="log4net.Filter.LevelRangeFilter"> 
      <levelMin value="INFO" /> 
      <levelMax value="FATAL" /> 
      </filter> 
     </appender> 
     <root> 
     <level value="ALL"/> 
     <appender-ref ref="FileAppender"/> 
     </root> 
    </log4net> 
</configuration> 

現在下面是實際生成日誌代碼:

[assembly: log4net.Config.XmlConfigurator(Watch = true)] 
namespace MyNamespace 
{ 
    public class HomeController : Controller 
    { 
     private static readonly ILog Log = new Log4NetFactoryAdapter().GetLogger(MethodBase.GetCurrentMethod().DeclaringType); 

     public ActionResult Index() 
     { 
      Log.Error(m=>m("My First Logs")); 
      return View(); 
     } 
    } 
} 

執行後,代碼執行沒有任何錯誤,但是上面提到的「mylogfile.xml」永遠不會生成。

請諮詢,以防有人嘗試過。

回答

2

當我看到通用日誌項目中,我看到了在web.config以下配置GitHub的來源:

<?xml version="1.0"?> 
<configuration> 
<configSections> 
<sectionGroup name="common"> 
    <section name="logging" type="Common.Logging.ConfigurationSectionHandler, Common.Logging"/> 
</sectionGroup> 
</configSections> 
<common> 
<logging> 
    <factoryAdapter type="Common.Logging.Log4Net.Universal.Log4NetFactoryAdapter, Common.Logging.Log4Net.Universal" /> 
</logging> 
</common> 
</configuration> 

然後你應該從「log4net.config」刪除配置根元素文件:

<log4net> 
    <appender name="FileAppender" type="log4net.Appender.FileAppender"> 
    <file value="C://Logs//mylogfile.xml" type="log4net.Util.PatternString"/> 
    <appendToFile value="true" /> 
    <lockingModel type="log4net.Appender.FileAppender+MinimalLock" /> 
    <layout type="log4net.Layout.XmlLayoutSchemaLog4j"> 
     <locationInfo value="true"/> 
    </layout> 
    <filter type="log4net.Filter.LevelRangeFilter"> 
     <levelMin value="INFO" /> 
     <levelMax value="FATAL" /> 
     </filter> 
    </appender> 
    <root> 
    <level value="ALL"/> 
    <appender-ref ref="FileAppender"/> 
    </root> 
</log4net> 

如果這不起作用,請啓用調試log4net以查看您的配置出了什麼問題。