参考:https://github.com/NLog/NLog/wiki/Tutorial

步骤:

1. 使用Nuget安装NLog.Extensions.Logging

Install-Package NLog.Extensions.Logging

2.编写代码(到这步运行代码,不报错,但是也不会有log输出,因为没有设置配置文件)

3. 编写配置文件

在项目下新增加NLog.config 文件,并设置其能copy到运行目录。将一下内容粘到里面,重新运行程序就可以看到输出到file.txt的log.

    <?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="file.txt" />
</targets> <rules>
<logger name="*" minlevel="Info" writeTo="logfile" />
</rules>
</nlog>

4. 增加输出源,将Log输出到屏幕上,按照以下内容对配置文件做修改

    <?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="file.txt" />
<target name="console" xsi:type="Console" />
</targets> <rules>
<logger name="*" minlevel="Info" writeTo="logfile" />
<logger name="*" minlevel="Info" writeTo="console" />
</rules>
</nlog>

5. 如果想发送邮件,可以安装NLog.MailKit

Install-Package NLog.MailKit

6.在配置文件中添加发送邮件的设置部分(参考https://github.com/nlog/NLog/wiki/Mail-target

    <?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"
internalLogFile="d:\Nlog_log.txt" internalLogLevel="Error">
<variable name="smtpServer" value="***"/>
<variable name="smtpUserName" value="***"/>
<variable name="smtpPassword" value="***"/>
<variable name="from" value="***"/>
<variable name="to" value="***"/> <targets>
<target name="logfile" xsi:type="File" fileName="logs\${date:format=yyyyMMdd}_log.txt" layout="${date:format=yyyy-MM-dd HH\:mm\:ss} ${message}" />
<target name="console" xsi:type="Console" layout="${date:format=yyyy-MM-dd HH\:mm\:ss} [${level}] ${message}"/>
<target name="infoMail" xsi:type="Mail"
smtpServer="${smtpServer}"
smtpUserName="${smtpUserName}"
smtpPassword="${smtpPassword}"
from="${from}"
to="${to}"
subject="info log"
body="${message}"
html="true"/>
<target name="errorMail" xsi:type="Mail"
smtpServer="${smtpServer}"
smtpUserName="${smtpUserName}"
smtpPassword="${smtpPassword}"
from="${from}"
to="${to}"
subject="error log"
body="${message}"/>
</targets> <rules>
<logger name="***" minlevel="Info" writeTo="infoMail" />
<logger name="***" minlevel="Error" writeTo="logfile" />
<logger name="Main" minlevel="Info" writeTo="console" />
<logger name="Main" minlevel="Error" writeTo="errorMail" />
</rules> <extensions>
<add assembly="NLog.MailKit"/>
</extensions>
</nlog>

DotNet Core Console 程序使用NLog的更多相关文章

  1. [C#]使用 C# 代码实现拓扑排序 dotNet Core WEB程序使用 Nginx反向代理 C#里面获得应用程序的当前路径 关于Nginx设置端口号,在Asp.net 获取不到的,解决办法 .Net程序员 初学Ubuntu ,配置Nignix 夜深了,写了个JQuery的省市区三级级联效果

    [C#]使用 C# 代码实现拓扑排序   目录 0.参考资料 1.介绍 2.原理 3.实现 4.深度优先搜索实现 回到顶部 0.参考资料 尊重他人的劳动成果,贴上参考的资料地址,本文仅作学习记录之用. ...

  2. 【ASP.NET Core分布式项目实战】(五)Docker制作dotnet core控制台程序镜像

    Docker制作dotnet core控制台程序镜像 基于dotnet SDK 新建控制台程序 mkdir /home/console cd /home/console dotnet new cons ...

  3. 视频图文教学 - 用最快的速度把 DotNet Core Blazor 程序安装到 树莓派中 并且用网页控制 GPIO 闪灯

    前言 dotnet core 在3.0时代已经发展得很好. 尤其是在跨平台方面更已经是达到了很实用的阶段. 作为 dotnet 程序员, 应该对 Linux 有充分的了解, 也可以在业余时间玩玩硬件, ...

  4. Supervisor守护DotNet Core控制台程序

    Supervisor 相信对Linux系统很熟的都知道这个软件,基于Python写的一个守护进程软件.具体的介绍和使用我就不再赘述了. 使用asp.net core 部署在Linux常用的方法 我们可 ...

  5. 2017-03-05 CentOS中配置守护服务(Supervisor)监听dotnet core web程序的运行

    我们继续解决上篇博客的问题,我这个人有个毛病,不喜欢遗留什么问题,也不喜欢问题说不明白,具体要怎么解决一定要详尽,因为经常自己遇到问题的时候,去翻别人的博客,就会遇到这样的问题,很苦恼,又说废话了. ...

  6. dotnet core 运行程序注意事项

    .net core 程序 debug版本无法直接运行,因为没有相关的dll,只有在进入项目文件夹那一层,执行 dotnet run 来运行,会自动链接 当前用户的个人文件夹下的 .nuget/.pac ...

  7. Docker制作dotnet core控制台程序镜像

    (1)首先我们到某个目录下,然后在此目录下打开visual studio code. 2.编辑docker file文件如下: 3.使用dotnet new console创建控制台程序; 4.使用d ...

  8. Net Core 控制台程序使用Nlog 输出到log文件

    using CoreImportDataApp.Common; using Microsoft.Extensions.Configuration; using Microsoft.Extensions ...

  9. dotNet Core WEB程序使用 Nginx反向代理

    之前记录过一篇 使用 jexus 作为dotNetCore的反向代理,发现jexus的内存占用较大,最终选择使用Nginx的原因就是占用内存较小,以及性能较优(https://www.cnblogs. ...

随机推荐

  1. Python Tornado框架(TCP层)

    Tornado在TCP层里的工作机制 上一节是关于应用层的协议 HTTP,它依赖于传输层协议 TCP,例如服务器是如何绑定端口的?HTTP 服务器的 handle_stream 是在什么时候被调用的呢 ...

  2. TP框架基础2

    ---恢复内容开始--- [空操作和空控制器处理] 空操作:就没有指定的操作方法 空控制器:没有指定控制器 http://网址/index.php/Home/User/login http://网址/ ...

  3. UVALive 6911 F - Double Swords

    思路:1.把所有有长度的剑看做点.Ai点是肯定要取.然后求另一把剑. 先对右区间排个序,然后每次看这个区间范围内有没有剑,如果没有就添加一把(值为右端点的剑): 如果有并且数量为1且这条龙的Ai等这把 ...

  4. Maven实战--- dependencies与dependencyManagement的区别

    在上一个项目中遇到一些jar包冲突的问题,之后还有很多人分不清楚dependencies与dependencyManagement的区别,本篇文章将这些区别总结下来. 1.DepencyManagem ...

  5. MMU解读

    转:https://blog.csdn.net/yueqian_scut/article/details/24816757 mmu页表也是放在内存中,mmu里有一个寄存器存放页表首地址,从而找到页表( ...

  6. Linux系统crontab定时调度Python脚本

    Linux系统crontab定时调度Python脚本 一.Python脚本随Linux开机自动运行 #Python脚本:/home/edgar/auto.py #用root权限编辑以下文件:/etc/ ...

  7. HTML5/CSS3实现图片倒影效果

    在线演示 本地下载

  8. 使用IDEA整合SSM框架

    一.安装环境和开发工具 在整合Spring,SpringMVC 和 MyBatis 的过程中,很容易遇到一些小问题,因此记录下整合过程. 首先是安装环境和开发工具,如下: Window 7 Jdk 1 ...

  9. 详解Linux系统中的文件名和文件种类以及文件权限

    Linux文件种类与副文件名 一直强调一个概念,那就是:任何装置在Linux底下都是文件, 不仅如此,连资料沟通的介面也有专属的文件在负责-所以,你会瞭解到,Linux的文件种类真的很多- 除了前面提 ...

  10. SpringBoot 密码MD5加密

    public class PasswordEncrypt { public static String encodeByMd5(String string) throws NoSuchAlgorith ...