首页 > DotNet Core Console 程序使用NLog

DotNet Core Console 程序使用NLog

参考: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>

 

转载于:https://www.cnblogs.com/suidouya/p/7596840.html

更多相关:

  • 引言 在这个-SLAM建图和导航仿真实例-项目中,主要分为三个部分,分别是 (一)模型构建(二)根据已知地图进行定位和导航(三)使用RTAB-MAP进行建图和导航 该项目的slam_bot已经上传我的Github。 这是第三部分,完成效果如下 图1 建图和导航 三、使用RTAB-Map进行建图和导航 1. rtab...

  • 引言 在这个-SLAM建图和导航仿真实例-项目中,主要分为三个部分,分别是 (一)模型构建(二)根据已知地图进行定位和导航(三)使用RTAB-MAP进行建图和导航 该项目的slam_bot已经上传我的Github。 由于之前的虚拟机性能限制,我在这个项目中使用了新的ubantu 16.04环境,虚拟机配置 内存 8GCPU...

  • [{name:1},{name:2}].forEach((v,i,ar) => {console.log(v,i,ar)});//基础遍历[{name:1},{name:2}].map((v) => v.name);//[1,2]返回对象数组中指定字段值的一位数组(不改变原始数组)[{name:1},{name:2},{name:3}...

  • 体验内容 使用gmapping方法利用turtlebot底盘移动信息和激光雷达数据进行建图。 1. 安装一些依赖包 sudo apt-get install ros-melodic-move-base* sudo apt-get install ros-melodic-map-server* sudo apt-get insta...

  • 前言 我们知道Java/Python这种语言能够很好得 支持反射。反射机制 就是一种用户输入的字符串到对应实现方法的映射,比如http接口中 用户传入了url,我们需要调用该url对应的方法/函数对象 从而做出对应的操作。 而C++ 并没有友好得支持这样的操作,而最近工作中需要通过C++实现http接口,这个过程想要代码实现得优雅...

  • 关于使用python logging模块的几点总结 使用python的标准日志模块logging可以非常方便地记录日志。Python日志系统非常丰富。添加结构化或非结构化日志输出到python代码,写到文件,输出到控制台,发送到系统日志,或者自定义输出格式都很容易。 下面是我实践过程中遇到的一些经验和教训的总结。 1. 一个简单...

  •   import logging from conf import settingsdef logger(log_type):# 生成 logger 对象logger = logging.getLogger(log_type)logger.setLevel(settings.LOG_LEVEL)# 生成handler对象,向文件输出...