程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> 構建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的後台管理系統(11)

構建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的後台管理系統(11)

編輯:關於ASP.NET

系統日志和異常的處理①

系統需要越來越自動化,我們需要引入日志記錄和異常捕獲

管理員的操作記錄需要被記錄,看出哪些模塊是頻繁操作,分析哪些是不必要的功能,哪些是需要被優化的。

系統的異常需要被捕獲,而不是將系統出錯顯示出來給用戶就不了了知。我們需要異常日志不斷改進系統。

我們老說用戶,我們還沒有用戶權限的表,所以我們在Home中先加入一個虛擬用戶吧!

首先我們創建一個用戶類AccountModel放在App.Models下的Sys文件夾下

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
    
namespace App.Models.Sys
{
    public class AccountModel
    {
        public string Id { get; set; }
        public string TrueName { get; set; }
    }
}
    
AccountModel.cs

在HomeController或者AccountController插入代碼

AccountModel account = new AccountModel();

account.Id = "admin";

account.TrueName = "admin";

Session["Account"] = account;

下面將帶來系統日志的記錄,主要記錄管理員的增、刪、改等操作的成功與失敗的異常記錄

日志插件有著名的log4net,可以輸出多種格式,如文本,xml,數據庫等,我們沒有必要做到這麼強大,我們只做符合系統的就可以了,記錄到數據庫,方便做統計等操

作,我們何時何地記錄日志?

   在Controller層做記錄;

   當用戶的操作成功時記錄;

   當用戶的操作失敗時記錄;

首先創建數據庫存放表:SysLog

USE DB
GO
    
/****** Object:  Table [dbo].[SysLog]    Script Date: 11/20/2013 21:13:38 ******/
SET ANSI_NULLS ON
GO
    
SET QUOTED_IDENTIFIER ON
GO
    
SET ANSI_PADDING ON
GO
    
CREATE TABLE [dbo].[SysLog](
    [Id] [varchar](50) NOT NULL, --GUID
    [Operator] [varchar](50) NULL,--操作人
    [Message] [varchar](500) NULL,--操作信息
    [Result] [varchar](20) NULL,--結果
    [Type] [varchar](20) NULL,--操作類型
    [Module] [varchar](20) NULL,--操作模塊
    [CreateTime] [datetime] NULL,--操作事件
 CONSTRAINT [PK_SysLog] PRIMARY KEY CLUSTERED 
(
    [Id] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
    
GO
    
SET ANSI_PADDING OFF
GO
    
SysLogSQL

EF更新模型,創建SysLogModel類放在App.Models下的Sys文件夾下

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ComponentModel.DataAnnotations;
    
    
namespace App.Models.Sys
{
    public class SysLogModel
    {
         
    
       [Display(Name = "ID")]
       public string Id { get; set; }
    
       [Display(Name = "操作人")]
       public string Operator { get; set; }
    
       [Display(Name = "信息")]
       public string Message { get; set; }
    
       [Display(Name = "結果")]
       public string Result { get; set; }
    
       [Display(Name = "類型")]
       public string Type { get; set; }
    
       [Display(Name = "模塊")]
       public string Module { get; set; }
    
       [Display(Name = "創建時間")]
       public DateTime? CreateTime { get; set; }
    }
}
    
SysLogModel.cs

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