程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> Enterprise Library 2.0 -- Logging Application Block(補充)

Enterprise Library 2.0 -- Logging Application Block(補充)

編輯:關於ASP.NET

在前面的文章中,有朋友提到我們在實際項目中往往是把一些事件的日志(比如異常)寫入到數據庫中,這樣更方便查看和管理,而在前面的文章中我都是以寫入到文本文件為例的,今天這篇文章就算是對前兩篇的一個補充,主要來介紹如何將日志信息寫入到數據庫中,同時也很感謝那位朋友的建議,下面我們進入正題,分為以下幾個步驟:

一、 根據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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved