力log4net的日志记录级别

问题描述:

事实证明,我的一个同事已禁用在源代码中的日志记录级别的检查:力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通过配置来检查日志记录级别,而无需编辑和重新编译源代码?

你的同事只禁用了你自己的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

你用什么追加程序?如果它是一个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