1. Installing NLog
使用 NuGet 程序包管理器安装 NLog。
遇到问题:我的项目是 .Net Framework 4.0 平台的,虽然 NLog 说明中是支持的,但是使用命令获取 NuGet 包会遇到如下错误:
“NLog”已拥有为“NETStandard.Library”定义的依赖项。
解决办法是安装低版本的 NLog ,我安装的是 4.0.0 的版本(此时最新版是 4.5.11 )。安装方法是在 NuGet 程序包管理器控制台中输入如下命令:
PM> Install-Package NLog -Version 4.0.0
解决办法不应该是使用旧版,事实上NLog最新版是支持 .Net Framework 4.0 版本的,不过需要在项目中添加 packages.config 配置文件,其内容如下:
这样的方法也能解决其他 NuGet 包的类似问题。
2. Configure NLog Targets for output
只有配置好 NLog Targets,NLog 才会有输出。
配置方法:
项目中添加一个 NLog.config 的xml- 使用 NuGet 程序包管理器安装 NLog.Config。
- 项目的根目录会生成两个文件:NLog.config 和 NLog.xsd
- 将 NLog.config 文件的"复制到输出目录"属性设置为“始终复制”
解释一下为什么要通过 NuGet 程序包管理器安装 NLog.Config ?
这是因为这样会多生成 NLog.xsd 这个文件,这个文件可以让我们在在使用 VS IDE 编辑 NLog.config 这个文件时,提供智能感知,相当方便!
以下是 NLog.config 文件内容示例()():
遇到问题:忘记设置文件属性,导致无输出。
3. Writing log messages
重新打包,方便调用:
public class NLogHelper{ private static NLog.Logger logger = NLog.LogManager.GetCurrentClassLogger(); public enum LogLevel { Trace, Debug, Info, Warn, Error, Fatal } public static void WriteLog(string msg, LogLevel level) { switch (level) { case LogLevel.Trace: logger.Trace(msg); break; case LogLevel.Debug: logger.Debug(msg); break; case LogLevel.Info: logger.Info(msg); break; case LogLevel.Warn: logger.Warn(msg); break; case LogLevel.Error: logger.Error(msg); break; case LogLevel.Fatal: logger.Fatal(msg); break; default: break; } }}