minlevel
атрибут действительно не является Layout
, поэтому вы не можете использовать средства отображения макетов, например `$ {appsetting}.
Вы можете сделать это программно:
var configuration = LogManager.Configuration;
//TODO find correct rule
var rule = configuration.LoggingRules[0];
//disable all
rule.DisableLoggingForLevel(LogLevel.Trace);
rule.DisableLoggingForLevel(LogLevel.Debug);
rule.DisableLoggingForLevel(LogLevel.Trace);
rule.DisableLoggingForLevel(LogLevel.Info);
rule.DisableLoggingForLevel(LogLevel.Warn);
rule.DisableLoggingForLevel(LogLevel.Error);
rule.DisableLoggingForLevel(LogLevel.Fatal);
var minLevelRaw = System.Configuration.ConfigurationManager.AppSettings["minLevel"];
var minLevel = LogLevel.FromString(minLevelRaw);
//enable correct one
rule.EnableLoggingForLevels(minLevel, LogLevel.Fatal); //enable from minLevel to fatal
LogManager.Configuration = configuration;
или если он должен работать для всех правил, вы могли бы использовать GlobalThreshold
:
var minLevelRaw = System.Configuration.ConfigurationManager.AppSettings["minLevel"];
var minLevel = LogLevel.FromString(minLevelRaw);
LogManager.GlobalThreshold = minLevel;
совершенны, спасибо! – Pappy