您的位置:首页 > 数据库

日志框架Nlog之将日志输出到数据库

2015-09-24 17:15 267 查看
如果你是跟着小编从

Nlog之前言

Nlog之将日志输出到控制台

Nlog之将日志输出到文件

读到现在的。那你也一定知道,我们本篇博客输出到数据库的关键点还是在配置文件的配置而已。为了本篇博客的完整性,大家再跟我一起熟悉一下整个过程。

第一步:添加对NLog的引用

具体步骤已经在上文中详细的写到了。 请移步日志框架Nlog之将日志输出到控制台

第二步:配置NLogConfing

<span style="font-family:KaiTi_GB2312;font-size:18px;">	<targets>

		<target xsi:type="Database" name="database" connectionString="
				Data Source=(local);Initial Catalog=test;Persist Security Info=True;
				User ID=madanmei;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>
		<logger name="*" minlevel="Debug" writeTo="database"/>
	</rules></span>


和之前不同的是,我们添加了连接数据库的配置和插入语句。(当然需要数据库有相应的表。贴心的小编已经把数据库表的创建语句准备好了。见底部。)

第三步:调用

这一部分和前两篇博客的调用内容也一样。

using NLog;
using System;
using System.Text;

namespace NLogToSql
{
    /// <summary>
    ///  将Nlog日志输出到数据库Demo-马丹妹-2015-9-24  
    /// </summary>
    class Program
    {
        private static Logger logger = LogManager.GetCurrentClassLogger();  //Logger对象代表与当前类相关联的日志消息的来源    
        static void Main(string[] args)
        {
            logger.Trace("输出一条记录信息成功!");//最常见的记录信息,一般用于普通输出   
            logger.Debug("输出一条Debug信息成功!"); //同样是记录信息,不过出现的频率要比Trace少一些,一般用来调试程序   
            logger.Info("输出一条消息类型信息成功!");//信息类型的消息   
            logger.Warn("输出一条警告信息成功");//警告信息,一般用于比较重要的场合   
            logger.Error("输出一条错误信息成功!");//错误信息  
            logger.Fatal("输出一条致命信息成功!");//致命异常信息。一般来讲,发生致命异常之后程序将无法继续执行。       
        }  
    }
}


至此,运行程序我们查看一下数据库




总结:

NLog的博客越写越简单了。我想大家也能体会出NLog的强大。封装的很好,可提供的方式很多。给了我们很

大的支撑让我们去做成我们想要的日志功能。

NLog系列博客,未完待续。。

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

附:创建表的脚本。

USE [test]
GO

/****** Object:  Table [dbo].[NLog_Log]    Script Date: 09/24/2015 16:54:50 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE TABLE [dbo].[NLog_Log](
	[LogId] [int] IDENTITY(1,1) NOT NULL,
	[CreateOn] [datetime] NOT NULL,
	[Origin] [nvarchar](max) NULL,
	[LogLevel] [nvarchar](50) NULL,
	[Message] [nvarchar](max) NULL,
	[Exception] [nvarchar](max) NULL,
	[StackTrace] [nvarchar](max) NULL
) ON [PRIMARY]

GO
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: