读到现在的。那你也一定知道,我们本篇博客输出到数据库的关键点还是在配置文件的配置而已。为了本篇博客的完整性,大家再跟我一起熟悉一下整个过程。
第一步:添加对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