MVC過濾器全域性異常捕捉

2021-10-08 01:28:03 字數 4040 閱讀 8827

1、首先引用log4net.dll

2、logexceptionattribute.cs檔案

[

attributeusage

(attributetargets.class, inherited =

true

, allowmultiple =

false)]

public

class

logexceptionattribute

:handleerrorattribute

] 的 action 時產生異常"

; loggerhelper.

error

(string

.format

(msgtemplate, controllername, actionname)

, filtercontext.exception);}

if(filtercontext.

result

is jsonresult)

else

}}

3、global檔案配置如下

//註冊 log4net

log4net.config.xmlconfigurator.

configure

(new

system.io.fileinfo

"log4net.config"))

;

4、filterconfig配置

public

static

void

registerglobalfilters

(globalfiltercollection filters)

5、log4net.config

<

?xml version=

"1.0"

?>

"log4net" type=

"log4net.config.log4netconfigurationsectionhandler, log4net"

/>

<

/configsections>

<

!--錯誤日誌--

>

>

="log\\logerror\\"

/>

="true"

/>

="date"

/>

="yyyy\\yyyymm\\yyyymmdd'.txt'"

/>

="false"

/>

"maxsizerollbackups"

value

="100"

/>

"log4net.layout.patternlayout"

>

<

!--每條日誌末尾的文字說明--

>

<

!--輸出格式--

>

<

!--樣例:2008-03

-2613:

42:32,

111[10]

info log4netdemo.mainclass [

(null)]

- info--

>

>

<

/layout>

<

<

!--info日誌--

>

>

"file"

value

="log\\loginfo\\"

/>

value

="true"

/>

"maxfilesize"

value

="10240"

/>

"maxsizerollbackups"

value

="100"

/>

"staticlogfilename"

value

="false"

/>

"datepattern"

value

="yyyy\\yyyymm\\yyyymmdd'.txt'"

/>

"rollingstyle"

value

="date"

/>

"log4net.layout.patternlayout"

>

>

<

/layout>

<

<

!--監控日誌--

>

>

"file"

value

="log\\logmonitor\\"

/>

value

="true"

/>

"maxfilesize"

value

="10240"

/>

"maxsizerollbackups"

value

="100"

/>

"staticlogfilename"

value

="false"

/>

"datepattern"

value

="yyyy\\yyyymm\\yyyymmdd'.txt'"

/>

"rollingstyle"

value

="date"

/>

"log4net.layout.patternlayout"

>

>

<

/layout>

<

<

!--error日誌--

>

"logerror"

>

="error"

/>

refref=/

>

<

/logger>

<

!--info日誌--

>

"loginfo"

>

="info"

/>

refref=/

>

<

/logger>

<

!--監控日誌--

>

"logmonitor"

>

="monitor"

/>

refref=/

>

<

/logger>

<

/log4net>

<

/configuration>

6、loggerhelper.cs檔案

public

class

loggerhelper

else

}public

static

void

info

(string msg)

public

static

void

monitor

(string msg)

}

7、補充:json異常返回jsonexceptionattribute.cs

[

attributeusage

(attributetargets.method, inherited =

true

, allowmultiple =

false)]

public

class

jsonexceptionattribute

:handleerrorattribute};

}}}

使用時在上面加上

[jsonexcetion]

public view longin(){}

說明:目錄結構分為logerror、loginfo、logmonitor區分開了錯誤日誌、info日誌、監控日誌,並且會按照日期生成日誌,方便我們檢視。

Mvc 異常過濾器

mvc自帶乙個異常過濾器即handleerrorattribute 1.首先要進行配置web.config defaultredirect表示需要跳轉的錯誤頁面,mode需設定為 on或者 remoteonly.注 handleerror只處理伺服器500錯誤,404 400等這些錯誤不進行處理,如...

MVC異常過濾器處理異常資訊

今天學習了mvc的過濾器,寫一下筆記!一 過濾器分類 1.authorization 許可權過濾器 一般用於登入驗證 或其他許可權管理 2.action 行為過濾器 可讓其執行自定義的方法 3.result 結果過濾器 可讓其執行自定義的方法 4.exception 異常過濾器 可獲取程式中的錯誤資...

MVC使用異常過濾器處理異常

在mvc的開發過程中,我們可能會遇到一些 錯誤導致的異常,如下圖所示,展示了乙個除數為0的異常。在mvc裡,自動為我們提供了一種異常處理器,並且應用在所有控制器上。在filters資料夾裡建立類,類名為 自定義 attribute,如我建立的類名為myeorroattribute。然後在繼承filt...