首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> 關於ASP.NET

Enterprise Library 2.0 - Logging Application Block 補充:將日誌寫入資料庫

     編輯:關於ASP.NET

前幾篇文章以寫入文字檔為例,有讀者建議補充如何將日誌寫入資料庫。本文作為補充,說明將日誌資訊寫入 SQL Server 的完整步驟。

步驟 1:建立日誌資料表

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)
)

步驟 2:建立兩個預存程序

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

另一個預存程序用於查詢日誌,請參考官方範例腳本。完成上述資料庫物件建立後,再於組態工具中設定 Database Trace Listener 指向此資料表與預存程序即可。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved