コードを使用して log4net を初期化する場合は、アペンダーにデバッグ フィルターを追加します。
private static void InitFileLogging(bool logDebugEvents)
{
string LOG_PATTERN = "%d [%t][%logger] %-5p %m%n";
Hierarchy hierarchy = (Hierarchy)LogManager.GetRepository();
TraceAppender tracer = new TraceAppender();
PatternLayout patternLayout = new PatternLayout();
patternLayout.ConversionPattern = LOG_PATTERN;
patternLayout.ActivateOptions();
tracer.Layout = patternLayout;
tracer.ActivateOptions();
hierarchy.Root.AddAppender(tracer);
RollingFileAppender roller = new RollingFileAppender
{
Layout = patternLayout,
AppendToFile = true,
RollingStyle = RollingFileAppender.RollingMode.Size,
MaxSizeRollBackups = 4,
MaximumFileSize = "300KB",
StaticLogFileName = true,
File = @"c:\temp\textLog.txt"
};
if (!logDebugEvents)
{
log4net.Filter.LevelMatchFilter debugFilter = new log4net.Filter.LevelMatchFilter() { AcceptOnMatch = false, LevelToMatch = Level.Debug };
roller.AddFilter(debugFilter);
}
roller.ActivateOptions();
hierarchy.Root.AddAppender(roller);
// hierarchy.Root.Level = Level.All;
hierarchy.Configured = true;
}
それ以外の場合は、外部構成ファイルを使用している場合は、アペンダーを取得してデバッグ フィルターを追加します。
private static void DisableDebugFileLogging()
{
XmlConfigurator.Configure();
Hierarchy hierarchy = (Hierarchy)LogManager.GetRepository();
foreach (var appender in hierarchy.GetAppenders())
{
RollingFileAppender rolAppender = appender as RollingFileAppender; //or whatever appender you use
if (rolAppender != null)
{
log4net.Filter.LevelMatchFilter debugFilter = new log4net.Filter.LevelMatchFilter() { AcceptOnMatch = false, LevelToMatch = Level.Debug };
rolAppender.AddFilter(debugFilter);
}
rolAppender.ActivateOptions();
}
}