在 WinForms 应用程序中使用 NLog 时,您可以通过以下步骤设置日志级别:
Install-Package NLog
nlog.config
或 NLog.config
),找到 <logger>
元素。例如:<configuration>
<configSections>
<section name="nlog" type="NLog.Config.ConfigSectionHandler, NLog"/>
</configSections>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
autoReload="true"
throwConfigExceptions="true">
<targets>
<target name="file" xsi:type="File" fileName="logs/app.log" />
</targets>
<rules>
<logger name="*" minlevel="Trace" writeTo="file"/>
</rules>
</nlog>
</configuration>
在这个例子中,所有日志级别(Trace、Debug、Info、Warn、Error、Fatal)都将写入文件。
<logger>
元素中的 minlevel
属性。例如,如果您只想记录 Info 及以上级别的日志,可以将 minlevel
设置为 “Info”:<logger name="*" minlevel="Info" writeTo="file"/>
NLogConfig
的类,并在其中定义 NLog 配置:using NLog;
using NLog.Config;
public class NLogConfig
{
[global::System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1810:InitializeReferenceTypeInstance")]
private static readonly Logger _logger = LogManager.GetCurrentClassLogger();
static NLogConfig()
{
var config = new LoggingConfiguration();
var fileTarget = new FileTarget
{
FileName = "logs/app.log",
AutoFlush = true
};
config.AddTarget("file", fileTarget);
var rule = new LoggingRule("*", LogLevel.Info, fileTarget);
config.AddRule(rule);
LogManager.Configuration = config;
}
}
然后,在应用程序启动时调用 NLogConfig
类的静态构造函数:
static void Main()
{
NLogConfig.Initialize();
Application.Run(new MainForm());
}
现在,日志级别已更改为 Info 及以上。要更改日志级别,只需修改 LoggingRule
的 LogLevel
属性。例如,要记录 Debug 及以上级别的日志,可以将 LogLevel
设置为 “Debug”:
var rule = new LoggingRule("*", LogLevel.Debug, fileTarget);