首页 / 网页编程 / ASP.NET / Enterprise Library 2.0 -- Logging Application Block(补充)
Enterprise Library 2.0 -- Logging Application Block(补充)2010-05-15 cnblogs pw Daniel Pang在前面的文章中,有朋友提到我们在实际项目中往往是把一些事件的日志(比如异常)写入到数据库中,这样更方便查看和管理,而在前面的文章中我都是以写入到文本文件为例的,今天这篇文章就算是对前两篇的一个补充,主要来介绍如何将日志信息写入到数据库中,同时也很感谢那位朋友的建议,下面我们进入正题,分为以下几个步骤:一、 根据Enterprise Library 2.0中将日志写入到数据库中的需要,我们在数据库中添加一张记录日志的表(RX_Log): --日志信息表create table RX_Log
(
id int identity not null, --流水号
EventId int null, --事件ID
Priority int null, --优先级
Category varchar(1000) null, --类别
Title varchar(500) null, --日志标题
Message varchar(1000) null, --日志信息
Machine varchar(100) null, --主机名
Timestamps smalldatetime null, --记录时间
Severity varchar(100) null, --严重级别
ApplicationDomain varchar(1000) null, --应用程序名
ProcessId int null, --进程ID
ProcessName varchar(500) null, --进程名
Win32ThreadId int null, --线程ID
ThreadName varchar(500) null, --线程名
ExtendedProperties varchar(1000) null, --扩展信息
primary key(id)
)Logging Application Block 在写日志到数据库的过程中,还需要两个存储过程(注意:这也是和1.0的一点小区别,上一个版本只需要一个存储过程),分别为:--建立存储过程--写日志create procedure usp_writelogtodatabase
(
@EventId int,
@Priority int,
@Title varchar(500),
@Message varchar(4000),
@machineName varchar(100),
@Timestamp smalldatetime,
@Severity varchar(100),
@AppDomainName varchar(1000),
@ProcessId int,
@ProcessName varchar(500),
@Win32ThreadId int,
@ThreadName varchar(500),
@formattedmessage varchar(4000),
@LogId int out
)
as
begin
insert into RX_Log
(
EventId,
Priority,
Title,
Message,
Machine,
Timestamps,
Severity,
ApplicationDomain,
ProcessId,
ProcessName,
Win32ThreadId,
ThreadName,
ExtendedProperties
)
values
(
@EventId,
@Priority,
@Title,
@Message,
@machineName,
@Timestamp,
@Severity,
@AppDomainName,
@ProcessId,
@ProcessName,
@Win32ThreadId,
@ThreadName,
@formattedmessage
)
set @LogId=@@identity
end