阅读量:118
在 WinForms 应用程序中使用 NLog 时,您可以通过以下步骤设置日志级别:
- 首先,确保已经安装了 NLog 并在项目中引用了 NLog。如果尚未安装,请使用 NuGet 包管理器安装 NLog:
Install-Package NLog
- 在 NLog 配置文件中(通常为
nlog.config或NLog.config),找到元素。例如:
<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)都将写入文件。
- 若要更改日志级别,只需修改
元素中的minlevel属性。例如,如果您只想记录 Info 及以上级别的日志,可以将minlevel设置为 “Info”:
<logger name="*" minlevel="Info" writeTo="file"/>
- 如果您使用的是代码配置而不是 XML 配置,可以在代码中设置日志级别。首先,创建一个名为
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);