c# - 强制 log4net 日志级别

标签 c# .net 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>

关于c# - 强制 log4net 日志级别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33097494/

相关文章:

c# - 使用 C# WinForms 的透明图像

c# - 获取类的完全限定名称?

c# - 文本框粘贴问题

c# - 如何阻止 WPF TextBox 增长

.net - 用Mono中的NuGet打包项目未实现错误

c# - 在静态类中保存对记录器的引用

c# - Log4Net 和奥尔良

c# - 服务的 ASP.NET MVC 设计模式最佳实践

c# - XAML WPF 如何在 FlowDocument 上添加内嵌背景图像?

c# - 可拖动的 WinForm 问题