在 WinForms 应用程序中使用 NLog 记录日志非常简单。首先,确保已经安装了 NLog 库。如果尚未安装,可以使用 NuGet 包管理器进行安装:
Install-Package NLog
接下来,按照以下步骤配置和使用 NLog:
NLog.config
的配置文件。在此文件中,定义日志记录的设置。例如:<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE config PUBLIC "-//NLog//DTD Config 1.0//EN" "http://nlog-project.org/dtds/nlog.dtd">
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.nlog-project.org/schemas/NLog.xsd http://nlog-project.org/dtds/nlog.dtd">
<targets>
<target name="file" xsi:type="File" fileName="logs/app.log" keepFileOpen="true" encoding="utf-8" />
</targets>
<rules>
<logger name="*" minlevel="Trace" writeTo="file" />
</rules>
</nlog>
这个配置文件将日志记录到名为 app.log
的文件中,并始终保持文件打开。
Program.cs
文件中,引入 NLog 命名空间并配置 NLog:using System;
using System.Windows.Forms;
using NLog;
namespace WinFormsApp
{
static class Program
{
[STAThread]
static void Main()
{
// 初始化 NLog
var logger = LogManager.GetCurrentClassLogger();
logger.Info("Application started.");
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new MainForm());
}
}
}
这里,我们使用 LogManager.GetCurrentClassLogger()
获取当前类的日志记录器实例,并使用 logger.Info()
记录一条信息级别的日志。
MainForm.cs
中:using System;
using System.Windows.Forms;
using NLog;
namespace WinFormsApp
{
public partial class MainForm : Form
{
private static readonly Logger logger = LogManager.GetCurrentClassLogger();
public MainForm()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
logger.Info("Button 1 clicked.");
MessageBox.Show("Button 1 clicked!");
}
}
}
在这个例子中,当用户点击按钮时,我们记录一条信息级别的日志。
现在,当您运行 WinForms 应用程序时,NLog 将根据 NLog.config
文件中的配置将日志记录到文件中。