一、NLog是什么?

NLog是一个基于.NET的免费的开源的日志记录类库。(官网:http://nlog-project.org/

NLog特点如下:

  1. 配置简单方便。可以将配置信息写的应用程序的配置文件中,或者写到单独的 NLog.config 配置文件中。
  2. 修改配置信息后立即生效,不用重启应用程序。通过设置 <nlog autoReload="true" /> 来实现。
  3. 内置了丰富的模板变量layout renders。例如: ${date} , ${level} ,  ${message} 等。
  4. 可以将日志记录到多个目标targets。例如:控制台、输出窗口、文件、数据库、邮件等。
  5. 支持扩展,可自定义目标

使用NLog的理由如下:

  1. 能够通过简单的配置和修改控制显示不同等级的跟踪信息。
  2. 将控制跟踪信息的显示与否的逻辑与代码分开,修改跟踪信息的显示不需要重新编译程序。

二、第一个NLog程序

1、创建控制台程序

此处只是为测试NLog,所以创建一个简单控制台应用程序,名称为NLogConsoleDemo,如图:

NLog学习笔记一

注意:此处选择的程序位置应选择应用程序可以创建文件的路径。

2、引用NLog程序集

可以通过两种方式应用NLog,分别如下:

1)通过程序包管理控制台安装,命令如下: PM> Install-Package NLog.Config 。(推荐

2)通过官网下载源码。

通过方式一安装结果如图:

NLog学习笔记一

NLog学习笔记一

注意:一定要修改NLog.config文件的属性中复制到输出目录的值为始终复制如果较新则复制

3)添加代码

建议通过 LogManager 创建一个私有静态( private sttatic )的 Logger 类对象进行日志记录,代码如下:

 1 using NLog;
 2 using System;
 3 using System.Collections.Generic;
 4 using System.Linq;
 5 using System.Text;
 6 using System.Threading.Tasks;
 7 
 8 namespace NLogConsoleDemo
 9 {
10     class Program
11     {
12         private static Logger logger = LogManager.GetCurrentClassLogger();
13 
14         static void Main(string[] args)
15         {
16             LogTest();
17             LogTest2();
18 
19             Console.ReadLine();
20         }
21 
22         public static void LogTest()
23         {
24             logger.Trace("Sample trace message");
25             logger.Debug("Sample debug message");
26             logger.Info("Sample informational message");
27             logger.Warn("Sample warning message");
28             logger.Error("Sample error message");
29             logger.Fatal("Sample fatal error message");
30 
31             // alternatively you can call the Log() method 
32             // and pass log level as the parameter.
33             logger.Log(LogLevel.Info, "Sample informational message");
34         }
35 
36         public static void LogTest2()
37         {
38             int k = 42;
39             int l = 100;
40 
41             logger.Trace("Sample trace message, k={0}, l={1}", k, l);
42             logger.Debug("Sample debug message, k={0}, l={1}", k, l);
43             logger.Info("Sample informational message, k={0}, l={1}", k, l);
44             logger.Warn("Sample warning message, k={0}, l={1}", k, l);
45             logger.Error("Sample error message, k={0}, l={1}", k, l);
46             logger.Fatal("Sample fatal error message, k={0}, l={1}", k, l);
47             logger.Log(LogLevel.Info, "Sample informational message, k={0}, l={1}", k, l);
48         }
49     }
50 }
View Code

相关文章:

  • 2022-01-07
  • 2021-10-15
  • 2022-12-23
  • 2022-03-07
  • 2021-08-10
  • 2021-12-02
  • 2021-12-04
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-09-23
  • 2022-12-23
  • 2022-01-20
  • 2021-12-28
  • 2021-06-26
相关资源
相似解决方案