我需要从另一个应用程序配置NLog设置,基本上我有一个主应用程序和一个配置应用程序,需要从配置应用程序设置一些日志设置。
我在下面尝试过但minlevel
是enum
并且无效.. :(
<logger name="*" minlevel="${appsetting:MinimumLogLevel}" writeTo="File" />
对于这项工作,任何建议都是完美的吗?
由于
答案 0 :(得分:2)
a
属性确实不是minlevel
,因此您无法使用`$ {appsetting}等布局渲染器。
你可以通过编程方式完成:
Layout
或者如果它适用于所有规则,您可以使用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