参考http://www.cnblogs.com/dflying/
Nlog(http://www.nlog-project.org)是一个基于.NET平台编写的类库。可以使用Nlog在应用程序中添加极为完善的跟踪调试代码。
Nlog允许自定义跟踪消息的来源(source)到记录跟踪消息的目标(target)的规则(rules)。记录跟踪信息的目标(target)可以为如下几种形式:
1. 文件
2. 文本控制台
3. Email
4. 数据库
5. 网络中的其它计算机
6. 基于MSMQ的消息队列
7. Windows系统日志
每一条跟踪消息都可以自动带有上下文消息(contextual information),并将其发送给记录跟踪信息的目标。上下文信息包含如下内容:
1. 当前的日期和时间
2. 记录等级
3. 来源名称
4. 输出跟踪消息的方法的堆栈信息
5. 环境变量的值
6. 异常的详细信息
7. 计算机,进程和线程名称
每条跟踪信息都包含一个记录等级(log level)信息,用来描述该条信息的重要性。
1. Trace-最常见的记录信息,一般用于普通输出;
2. Debug-同样是记录信息,不过出现的频率要不Trace少一些,一般用来调试程序;
3. Info-信息类型的消息
4. Warn-警告信息,一般用于比较重要的场合
5. Error-错误信息
6. Fatal-致命异常信息。一般来讲,发生致命异常之后程序将无法继续执行。
更多的信息浏览页面http://nlog-project.org/home。
以编程方式进行NLog的配置
步骤如下:
1. 创建一个LoggingConfiguration对象,用来保存配置信息
2. 至少创建一个输出目标对象
3. 设置该输出目标对象的属性
4. 设置LoggingRule对象,并将其添加到LoggingConfiguration对象的LoggingRules集合中
5. 启用该LoggingConfiguration对象(将LogManager.Configuration设定为该LoggingConfiguration对象即可)
下面的代码片段以编程方式创建了两个输出目标对象——支持颜色的控制台和文件,并将记录等级等于或高于Debug的日志信息发送至这两个输出目标:
6. using NLog;
7. using NLog.Targets;
8. using NLog.Config;
9. using NLog.Win32.Targets;
10.
11.class Example
12.{
13. static void Main(string[] args)
14. {
15. // Step 1. Create configuration object
16.
17. LoggingConfiguration config = new LoggingConfiguration();
18.
19. // Step 2. Create targets and add them to the configuration
20.
21. ColoredConsoleTarget consoleTarget = new ColoredConsoleTarget();
22. config.AddTarget("console", consoleTarget);
23.
24. FileTarget fileTarget = new FileTarget();
25. config.AddTarget("file", fileTarget);
26.
27. // Step 3. Set target properties
28.
29. consoleTarget.Layout = "${date:format=HH//:MM//:ss} ${logger} ${message}";
30. fileTarget.FileName = "${basedir}/file.txt";
31. fileTarget.Layout = "${message}";
32.
33. // Step 4. Define rules
34.
35. LoggingRule rule1 = new LoggingRule("*", LogLevel.Debug, consoleTarget);
36. config.LoggingRules.Add(rule1);
37.
38. LoggingRule rule2 = new LoggingRule("*", LogLevel.Debug, fileTarget);
39. config.LoggingRules.Add(rule2);
40.
41. // Step 5. Activate the configuration
42.
43. LogManager.Configuration = config;
44.
45. // Example usage
46.
47. Logger logger = LogManager.GetLogger("Example");
48. logger.Trace("trace log message");
49. logger.Debug("debug log message");
50. logger.Info("info log message");
51. logger.Warn("warn log message");
52. logger.Error("error log message");
53. logger.Fatal("fatal log message");
54. }
55.}