2015-10-13 266 views
1

事實證明,我的一個同事已禁用在源代碼中的日誌記錄級別的檢查:力log4net的日誌記錄級別

private static void Log(string source, EnumLogType logType, string msg) 
    { 
     .... 

     switch (logType) 
     { 
      case EnumLogType.ERROR: 
       //if (log.IsErrorEnabled) { log.Error(logMsg); } 
       log.Error(logMsg); 
       break; 
      case EnumLogType.WARNING: 
       //if (log.IsWarnEnabled) { log.Warn(logMsg); } 
       log.Warn(logMsg); 
       break; 
      case EnumLogType.INFO: 
       //if (log.IsInfoEnabled) { log.Info(logMsg); } 
       log.Info(logMsg); 
       break; 
      case EnumLogType.VERBOSE: 
       //if (log.IsDebugEnabled) { log.Debug(logMsg); } 
       log.Debug(logMsg); 
       break; 
      default: 
       log.Debug(logMsg); 
       break; 
     } 
    } 

因此,我們的產品現在正在寫調試日誌,即使配置文件中的水平設置爲ERROR。

有沒有辦法強制log4net只記錄錯誤信息?換句話說,我可以強制log4net通過配置來檢查日誌記錄級別,而無需編輯和重新編譯源代碼?

回答

2

你的同事只禁用了你自己的EnumLogType關卡設置。
log4net日誌級別應該仍然有效。

在你AppName.Exe.config或Web.Config中,使用類似:

<log4net> 
    ... 
    <logger name="..."> 
     ... 
     <level value="Error" /> 
    </logger> 
</log4net> 
+0

是啊,事實證明,log4net的未讀'log4net.config'但在'web.config'(即使我在log4net.config在'AssemblyInfo.cs'指出)''部分。所以我試圖配置錯誤的文件... – Azimuth

1

你用什麼追加程序?如果它是一個DatabaseAppender,你可以嘗試和改變sql命令文本。

或者您可以編輯log4net.config文件以僅使用過濾器部分對某些日誌級別應用某些appender。

<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender"> 
    <file type="log4net.Util.PatternString" value="{LogName}" /> 
    <appendToFile value="true" /> 
    <rollingStyle value="Date" /> 
    <datePattern value="yyyyMMdd" /> 
    <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="[%date] [%level] [%thread] [%logger] [%P{userLoginName}] [%P{HostName}] [%P{IPAddress}] [%P{methodName}] [%message] [%exception]%newline" /> 
    </layout> 
    <filter type="log4net.Filter.LevelRangeFilter"> 
     <levelMin value="INFO" /> 
     <levelMax value="WARN" /> 
    </filter> 
    </appender> 
+0

事實證明,log4net不是在'web.config'中讀取'log4net.config',而是''節(儘管我指向了'AssemblyInfo中的log4net.config。 cs')。所以我試圖配置錯誤的文件... – Azimuth