2010-08-19 97 views
3

我正在使用.NET Framework 2.0作爲管理員用戶在Windows XP中使用C#,使用.NET Framework 2.0二進制引用的log4net。Log4Net不能正常工作

我曾試過What am I missing with log4net - No log file created,但它不適合我。

我添加以下到AssemblyInfo.cs中:

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "Log4Net.config", Watch = true)] 

並創建如下文件「Log4Net.config」,但是,當我跑我的控制檯應用程序,無法找到我的項目中的任何日誌文件。我錯過了什麼?

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <configSections> 
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/> 
    </configSections> 
    <log4net> 

    <!-- 
      log4net documentation http://logging.apache.org/log4net/ 
      Logging levels in order of increasing priority: 
       * ALL 
       * DEBUG 
       * INFO 
       * WARN 
       * ERROR 
       * FATAL 
       * OFF 
     --> 

    <appender name="DebugLog" type="log4net.Appender.FileAppender"> 
     <file value="MyLog_debug.log" /> 
     <appendToFile value="true" /> 
     <lockingModel type="log4net.Appender.FileAppender+MinimalLock" /> 
     <maximumFileSize value="5MB" /> 
     <filter type="log4net.Filter.LevelRangeFilter"> 
     <levelMin value="DEBUG" /> 
     <levelMax value="DEBUG" /> 
     </filter> 
     <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%newline%date %-5level %logger - %message%newline" /> 
     </layout> 
    </appender> 

    <appender name="InfoLog" type="log4net.Appender.RollingFileAppender"> 
     <file value="MyLog_info.log" /> 
     <appendToFile value="true" /> 
     <rollingStyle value="Composite" /> 
     <datePattern value="yyyyMMdd" /> 
     <maxSizeRollBackups value="7" /> 
     <maximumFileSize value="5MB" /> 
     <filter type="log4net.Filter.LevelRangeFilter"> 
     <levelMin value="INFO" /> 
     <levelMax value="WARN" /> 
     </filter> 
     <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%newline%date %-5level %logger - %message%newline" /> 
     </layout> 
    </appender> 

    <appender name="ErrorLog" type="log4net.Appender.RollingFileAppender"> 
     <file value="MyLog_error.log" /> 
     <appendToFile value="true" /> 
     <rollingStyle value="Composite" /> 
     <datePattern value="yyyyMMdd" /> 
     <maxSizeRollBackups value="30" /> 
     <maximumFileSize value="5MB" /> 
     <filter type="log4net.Filter.LevelRangeFilter"> 
     <levelMin value="ERROR" /> 
     <levelMax value="FATAL" /> 
     </filter> 
     <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%newline%date %-5level %logger - %message%newline" /> 
     </layout> 
    </appender> 

    <!-- Set the default logging level and add the active appenders --> 
    <root> 
     <level value="ALL" /> 
     <appender-ref ref="DebugLog" /> 
     <appender-ref ref="InfoLog" /> 
     <appender-ref ref="ErrorLog" /> 
    </root> 

    </log4net> 
</configuration> 

回答

10

確保將配置文件複製到輸出目錄。

如果您使用的是Visual Studio,請轉至'Log4Net.config'屬性,並確保'複製到輸出目錄'設置爲'始終複製'或'如果更新複製'。否則,只要確保將配置文件複製到輸出目錄即可。

此外,log4net.Appender.FileAppender沒有'maximumFileSize'屬性,因此您需要從配置文件中刪除該屬性。