日志Nlog
来源:互联网 发布:淘宝网鞋柜 编辑:程序博客网 时间:2024/06/05 10:13
在性能代码性能优化的时候,马丹妹给予指导时,用了日志测试时间这个技术,很是吸引人,而且她也写了系列博客,看了师姐的博客后实践,然后写一篇简单的博客。
师姐系列博客地址:http://blog.csdn.net/u010176014/article/category/5834015
NLog是一个基于.NET平台编写的类库,我们可以使用NLog在应用程序中添加极为完善的跟踪调试代码。NLog完全实现了我们上面的期望目标,并且还远远不止这些……
NLog允许我们自定义从跟踪消息的来源(source)到记录跟踪信息的目标(target)的规则(rules)。记录跟踪信息的目标(target)可以为如下几种形式:
1.文件
2.文本控制台
3.Email
4.数据库
5.网络中的其它计算机(通过TCP或UDP)
6.基于MSMQ的消息队列
7.Windows系统日志
除此之外,每一条跟踪消息都可以自动带有上下文信息(contextual information),并将其发送给记录跟踪信息的目标。这些上下文信息可以包含如下内容:
1.当前的日期和时间(多种格式)
2.记录等级
3.来源名称
4.输出跟踪消息的方法的堆栈信息
5.环境变量的值
6.异常的详细信息
7.计算机、进程和线程名称
8.其他
每条跟踪信息都包含一个记录等级(log level)信息,用来描述该条信息的重要性。NLog支持如下几种记录等级:
Trace - 最常见的记录信息,一般用于普通输出
Debug - 同样是记录信息,不过出现的频率要比Trace少一些,一般用来调试程序
Info - 信息类型的消息
Warn - 警告信息,一般用于比较重要的场合
Error - 错误信息
Fatal - 致命异常信息。一般来讲,发生致命异常之后程序将无法继续执行。
现在用实例来说明:
一、输出到控制台
第一步:添加对NLog的引用
共添加两个文件,下图所示
方法1、Nuget:
方法2:、菜单中工具-库程序包管理器-程序包管理器控制台,输入Install-Package NLog和Install-Package NLog.config即可
引用成功后结果:
第二步:配置NLog.config文件
NLog.config中共包含两个节点,targets和rules。我们需要配置的也是这两个节点
代码如下:
<span style="font-size:18px;"><?xml version="1.0"encoding="utf-8" ?> <nlogxmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.nlog-project.org/schemas/NLog.xsdNLog.xsd" autoReload="true" throwExceptions="false" internalLogLevel="Off"internalLogFile="c:\temp\nlog-internal.log" > <!-- optional, add some variabeles https://github.com/nlog/NLog/wiki/Configuration-file#variables --> <variable name="myvar" value="myvalue"/> <targets> <!--添加一个新条目让日志输出到控制台中,并添加必要的输出布局(layout)--> <target name="console" xsi:type="Console"layout="${longdate}|${level}|${message}"/> <!--说明 xsi:type="Console"指定输出到控制台;layout指定输出文件内容的样式${longdate}是日期(具体到毫秒),${level}是日志的等级;${message}是具体要输出的内容。--> </targets> <rules> <!--添加必要的规则--> <logger name="*" writeTo="console"/> <!--我个人设置的规则是,将所有记录的信息输出至控制台--> </rules> </nlog></span>
第三步:输出
<span style="font-size:18px;">using System;using System.Collections.Generic;using System.Linq;using System.Text;using NLog;namespace ConsoleApplication1{ class Program { private static Logger logger = LogManager.GetCurrentClassLogger();//建立一个日志对象 static void Main(string[] args) { logger.Trace("输出一条记录信息成功!");//最常见的记录信息,一般用于普通输出 logger.Debug("输出一条Debug信息成功!"); //同样是记录信息,不过出现的频率要比Trace少一些,一般用来调试程序 logger.Info("输出一条消息类型信息成功!");//信息类型的消息 logger.Warn("输出一条警告信息成功");//警告信息,一般用于比较重要的场合 logger.Error("输出一条错误信息成功!");//错误信息 logger.Fatal("输出一条致命信息成功!");//致命异常信息。一般来讲,发生致命异常之后程序将无法继续执行。 } }}</span>
执行结果:
2、输出到文件:
其它不变,只是修改NLog.config配置文件:
<span style="font-size:18px;"><targets> <!--说明 xsi:type="File"指定输出到文件类型;fileName指定输出文件的存放位置和文件名(可自定义),其中 ${basedir}是程序所在的路径; ${shortdate}是日期(具体到日)。 layout指定输出文件内容的样式 ${level}是日志的等级; ${longdate}是日期(具体到毫秒), ${message}是具体要输出的内容。--> <target name="Info" xsi:type="File"fileName="${basedir}/log/test.${shortdate}.log"layout="${longdate} [${level}]: ${message}"/> </targets> <rules> <logger name="*" writeTo="Info"/> </rules></span>
结果是:
3、输出到数据库:
配置文件修改为:
<span style="font-size:18px;"><?xml version="1.0"encoding="utf-8" ?><nlogxmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.nlog-project.org/schemas/NLog.xsdNLog.xsd" autoReload="true" throwExceptions="false" internalLogLevel="Off" internalLogFile="c:\temp\nlog-internal.log"> <!-- optional, add some variabeles https://github.com/nlog/NLog/wiki/Configuration-file#variables --> <variable name="myvar" value="myvalue"/> <!-- Seehttps://github.com/nlog/nlog/wiki/Configuration-file forinformation on customizing logging rules and outputs. --> <targets> <!-- add your targets here See https://github.com/nlog/NLog/wiki/Targets for possible targets. See https://github.com/nlog/NLog/wiki/Layout-Renderers for the possiblelayout renderers. --> <!--添加一个新条目让日志输出到控制台中,并添加必要的输出布局(layout)--> <!--<target name="console" xsi:type="Console"layout="${longdate}|${level}|${message}"/>--> <!--说明 xsi:type="Console"指定输出到控制台;layout指定输出文件内容的样式${longdate}是日期(具体到毫秒),${level}是日志的等级;${message}是具体要输出的内容。--> <!--Writing events to the a file with the date in the filename.--> <!--<target name="Info" xsi:type="File"fileName="${basedir}/log/test.${shortdate}.log"layout="${longdate} [${level}]:${message}"/>--> <target xsi:type="Database" name="database"connectionString=" Data Source=(local);InitialCatalog=NLogtest;Persist Security Info=True; User ID=sa;Password=123456"commandText="insert into NLog_Log([CreateOn],[Origin],[LogLevel],[Message], [Exception],[StackTrace]) values (getdate(), @origin, @logLevel,@message,@exception, @stackTrace)"> <!--日志来源--> <parameter name="@origin" layout="${callsite}"/> <!--日志等级--> <parameter name="@logLevel"layout="${level}"/> <!--日志消息--> <parameter name="@message"layout="${message}"/> <!--异常信息--> <parameter name="@exception"layout="${exception}" /> <!--堆栈信息--> <parameter name="@stackTrace"layout="${stacktrace}"/> </target> </targets> <rules> <!-- add your logging rules here --> <!--<logger name="*" writeTo="Info"/>--> <logger name="*" minlevel="Debug"writeTo="database"/> <!-- Write all events with minimal level of Debug (So Debug, Info, Warn,Error and Fatal, but not Trace) to"f" <logger name="*" minlevel="Debug"writeTo="f" /> --> </rules></nlog> </span>
结果是:
- 日志Nlog
- NLog日志
- NLog日志使用方法
- NLog日志使用方法
- nlog日志配置
- NLog日志记录学习
- NLog日志管理工具--入门实例
- NLog日志管理工具--发送邮件
- NLog日志管理工具--入门实例
- 日志框架Nlog之前言
- NLog日志管理工具--入门实例
- Net Core使用日志 NLog
- Web APi NLog 记录日志
- Nlog
- Nlog
- NLog
- C#第三方日志库Nlog
- 日志记录组件log4net和nlog
- linux内网嗅探,监控局域网内记录
- JS的第二天
- 使用Unity3D引擎制作2D横版跑酷地图无限循环
- python制作报表
- Linux下activeMQ安装
- 日志Nlog
- 报表导出
- 2015寒假总结—做自己
- 103.有问题!!!!Remove Duplicate Letters
- uva 10943 隔板法
- Linux RPM命令
- 单例模式
- Ubuntu安装JDK
- MATLAB图像处理:平面卫星图转换成立体球形图