1. Installing NLog

使用 NuGet 程序包管理器安装 NLog。如何使用 NuGet?

遇到问题:我的项目是 .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 配置文件,其内容如下:

<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="NLog" version="4.5.11" targetFramework="net40" />
<package id="NLog.Config" version="4.5.11" targetFramework="net40" />
</packages>

这样的方法也能解决其他 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 文件内容示例(配置选项)(官方说明):

<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<targets>
<target name="logfile" xsi:type="File"
fileName="${basedir}/Logs/${shortdate}.txt"
layout="${time} | ${level:uppercase=false} | ${message}"
/>
<target name="logconsole" xsi:type="Console" />
</targets> <rules>
<logger name="*" minlevel="Info" writeTo="logconsole" />
<logger name="*" minlevel="Debug" writeTo="logfile" />
</rules>
</nlog>

遇到问题:忘记设置文件属性,导致无输出。

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;
}
}
}

Open-source Tutorial - NLog的更多相关文章

  1. NLog汇总

    相关文章 NLog文章系列——系列文章目录以及简要介绍 Elasticsearch,Kibana,Logstash,NLog实现ASP.NET Core 分布式日志系统 ElasticSearch+N ...

  2. 30个HTML5学习资源

    早在几个星期前,Adobe就发布了Dreamweaver CS5 HTML5 Pack的预览版下载.众所周知,HTML5在互联网领域掀起了一场大论战,并让Adobe的日子很难熬.HTML5致力于为前端 ...

  3. python entry points 例子

    pbr的介绍不多,http://ju.outofmemory.cn/entry/156745 $ mkdir entry_test; cd entry_test; git init $ mkdir  ...

  4. Wechart 饼图

    预览 Preview | Usage Source | Pie Source | Tutorial Wechart by Cax Cax 众所周知 Cax 既能开发游戏.又能开发图表.本文将从饼图开始 ...

  5. Learn nodejs: Tutorials for Programmers of All Levels, 程序员每个阶段的示例

    https://stackify.com/learn-nodejs-tutorials/ What is Node.js? Node.js can be defined as a dynamic, c ...

  6. macOS平台下Qt应用程序菜单翻译及调整

    一.翻译 在macOS平台上,系统会为应用程序菜单添加一些额外的菜单项.先来看一些典型的例子: 这个是Qt Creator的菜单,系统为应用程序菜单添加了一些桌面显示操作相关的菜单项: 这个是Qt D ...

  7. LIRE教程之源码分析 | LIRE Tutorial of Analysis of the Source Code

    LIRE教程之源码分析 |LIRE Tutorial of Analysis of the Source Code 最近在做地理图像识别和检索的研究,发现了一个很好用的框架LIRE,遂研究了一通.网上 ...

  8. log4net 发布到生产环境不写日志的解决方法--使用 NLog日志

    1.升级到log4net的最新版 PM下执行 Install-Package log4net 还是无法解决的,使用下面的方法 2.使用Nlog替换之,详见https://github.com/NLog ...

  9. NLog写入Mongo日志配置

    Web网站中引入了NLog日志,日志记录在Mongo数据库中,经过两天的简单学习,现简要记录说明下: 首先贴出NLog的学习地址: https://github.com/NLog/NLog/wiki/ ...

随机推荐

  1. varnish代理缓存服务器的安装与使用

    1. 下载解压 cd /usr/local/src/ wget https://codeload.github.com/varnishcache/varnish-cache/zip/master ch ...

  2. table表格隔行变色

    <!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  3. cordova 插件创建

    peng@PENG-PC /E/_My_File_____/_work/MyCode/myCode/cordova-workspace/plugman-test/ABCD $ npm install ...

  4. Mac环境,React native错误解决方案

    运行react-native run-android,报错如下图:     运行react-native run-ios正常,但 react-native run-android时,提示错误: 在网上 ...

  5. Redis3.x HA 方案(基于 Sentinel 方式)

    第一部分 Redis-HA 搭建 一.Redis-HA 拓扑 一主两从,主从复制,故障时主从切换 三个Redis节点 + Sentinel 节点 Master          127.0.0.1   ...

  6. ALV TREE 实例

    ALV TREE 实例 REPORT ZRPT_PS_PS021TREE . TABLES: PROJ, "项目定义数据 PRPS, "WBS元素数据 ZCJ30, "A ...

  7. (转)浅析三层架构与MVC模式的区别

    MVC模式介绍: MVC全名是Model ViewController,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用于组织代码用一种业务逻辑和数据 ...

  8. ubuntu安装opencv(自己编译)

    如果只需要python的,只需pip install opencv-python,然后apt-get一下下面第一点的东东. 1/ sudo apt-get install build-essentia ...

  9. UVA - 10305 【全排列】

    题意 要求给出一组 包含 1 - N 的数字的序列 要求这个序列 满足 题给的限制条件 比如 1 2 就是 1 一定要在 2 前面 思路 因为 数据规模较小 可以用 全排列 然后判断每个序列 是否满足 ...

  10. TopCoder<SRM>上的一道1100分的题目解析附代码

    首先我们来简单看一下这道题的statement Problem Statement      Note that in the following problem statement, all quo ...