有没有办法以编程方式在log4net中设置日志级别?我假设有一个属性可以让你这样做,但我似乎找不到一个.
我想要做的是有一个可配置选项进入调试模式.这会导致额外的记录.
我正在使用单独的log4net配置xml文件.目前我提出的解决方案如下:
使用dom编辑日志文件,然后调用XMLConfigurator根据文件配置日志文件.
有两个日志配置文件,并在选项更改调用xml Configurator上使用相应的日志配置文件.
我倾向于2,有什么理由不行吗?
您可以以编程方式更改log4net记录器的日志记录级别,但是如何执行此操作并不明显.我有一些代码可以做到这一点.鉴于此记录器:
private readonly log4net.ILog mylogger;
您必须执行以下花哨的步法将其设置为Debug:
((log4net.Repository.Hierarchy.Logger)mylogger.Logger).Level = log4net.Core.Level.Debug;
这是我以编程方式配置log4net的方式:
//declared as a class variable private static readonly ILog logger = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); PatternLayout layout = new PatternLayout(@"%date %-5level %message%newline"); RollingFileAppender appender = new RollingFileAppender(); appender.Layout = layout; appender.File = "c:\log.txt"; appender.AppendToFile = true; appender.MaximumFileSize = "1MB"; appender.MaxSizeRollBackups = 0; //no backup files appender.Threshold = Level.Error; appender.ActivateOptions(); log4net.Config.BasicConfigurator.Configure(appender);
我认为Appender的Threshold属性是你要找的,它将控制appender输出的日志记录级别.
log4net 手册有很多很好的配置示例.