一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - ASP.NET教程 - ASP.NET 通過攔截器記錄錯誤日志的示例代碼

ASP.NET 通過攔截器記錄錯誤日志的示例代碼

2021-12-13 16:56大穩(wěn)·楊 ASP.NET教程

這篇文章主要介紹了ASP.NET 通過攔截器記錄錯誤日志的示例代碼,幫助大家更好的理解和學(xué)習(xí)使用.NET技術(shù),感興趣的朋友可以了解下

前言

    主要是記錄一下實現(xiàn)的錯誤日志攔截,可以在攔截器里面控制返回的信息,把錯誤信息處理后返回給請求端。

攔截器

攔截器又稱過濾器。

asp.net mvc本身是自帶3種攔截器:Action攔截器、Result攔截器、Exception攔截器。 應(yīng)用中常見的攔截器有日志攔截器(Action攔截器)和異常處理攔截器(Exception攔截器)。

java里spring mvc也常用攔截器來做些非干預(yù)業(yè)務(wù)邏輯的事,諸如實現(xiàn)HandlerInterceptor接口。

攔截器是AOP(面向切面編程)的一種應(yīng)用。

攔截器要解決的問題:

1.代碼復(fù)用。攔截器可被復(fù)用
2.職責(zé)單一。比如廚師只負(fù)責(zé)炒菜,不管前期的洗菜、后續(xù)的送菜工作。菜變質(zhì)了也是直接喊一聲就有人來處理。

這次我們用來記錄錯誤日志

代碼實戰(zhàn)

攔截器

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
/// <summary>
/// 接口異常捕捉過濾器
/// </summary>
[AttributeUsage(AttributeTargets.All, AllowMultiple = false, Inherited = true)]
public class ApiErrorHandleAttribute : ExceptionFilterAttribute
{
    public override void OnException(HttpActionExecutedContext actionExecutedContext)
    {
        base.OnException(actionExecutedContext);
        actionExecutedContext.Response = GetResponse(actionExecutedContext);
    }
 
    /// <summary>
    /// 捕捉異常后響應(yīng)方法
    /// </summary>
    private HttpResponseMessage GetResponse(HttpActionExecutedContext actionExecutedContext)
    {
        var requesthost = actionExecutedContext.ActionContext.Request.RequestUri.ToString();//當(dāng)前請求的地址,包括ip加接口地址
        var method = actionExecutedContext.ActionContext.Request.Method.ToString();//當(dāng)前請求是POST/GET/PUT/DELETE ……
        var controller = actionExecutedContext.ActionContext.ActionDescriptor.ControllerDescriptor.ControllerType.FullName;//當(dāng)前請求的控制器所在全路徑:xxx.WebAPI.Controllers.xxxController
        var action = actionExecutedContext.ActionContext.ActionDescriptor.ActionName; //當(dāng)前請求的方法
        var paramters = actionExecutedContext.ActionContext.ActionArguments; //獲取當(dāng)前請求的參數(shù)
        var ip = HttpContext.Current.Request.UserHostAddress;
       
        LogHelper.Error($"錯誤信息:URL:{actionExecutedContext.Request.RequestUri},--參數(shù)信息:{paramters.ToJson()},--actionExecutedContext.Exception:{actionExecutedContext.Exception.ToJson()}");
        var response = new { code = 506, message = $"{actionExecutedContext.Exception.Message},URL:{actionExecutedContext.Request.RequestUri}", ex = actionExecutedContext.Exception };
       
        return JsonHelper.ToHttpResponseMessage(response);
    }
 
}

工具類方法

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
public static class JsonHelper
{
    /// <summary>
    /// 轉(zhuǎn)化為json格式的HttpResponseMessage
    /// </summary>
    public static HttpResponseMessage ToHttpResponseMessage(object obj)
    {
        string str;
        if (obj is string || obj is char)
        {
            str = obj.ToString();
        }
        else
        {
            str = obj.ToJson();
        }
        var result = new HttpResponseMessage { Content = new StringContent(str, Encoding.GetEncoding("UTF-8"), "application/json") };
        return result;
    }
 
    /// <summary>
    /// 轉(zhuǎn)化為json字符串,默認(rèn)的時間格式
    /// </summary>
    /// <param name="obj">要被轉(zhuǎn)化的對象</param>
    /// <returns>json字符串</returns>
    public static string ToJson(this object obj)
    {
        return JsonConvert.SerializeObject(obj, new JsonSerializerSettings { ReferenceLoopHandling = ReferenceLoopHandling.Ignore, DateFormatString = "yyyy-MM-dd HH:mm:ss" });
    }
}

以上就是ASP.NET 通過攔截器記錄錯誤日志的示例代碼的詳細(xì)內(nèi)容,更多關(guān)于ASP.NET 記錄錯誤日志的資料請關(guān)注服務(wù)器之家其它相關(guān)文章!

原文鏈接:https://www.cnblogs.com/dawenyang/p/14668020.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 91影视在线看免费观看 | 日本最新伦中文字幕 | 亚洲图片一区二区三区 | 日本成熟 | 99色在线播放 | 四虎影视在线看免费 720p | 国产成人在线视频播放 | 国产精品理论片在线观看 | 暖暖 免费 高清 中文 日本 | 天天色综合三 | 99精品国产久热在线观看66 | 99久久国产综合精品女小说 | 美女校花被调教出奶水 | 视频一区二区国产无限在线观看 | 丁香成人社 | 日韩欧美视频二区 | 996免费视频国产在线播放 | 亚洲人成综合在线播放 | 特黄特级毛片免费视 | 农村妇女野外牲交一级毛片 | 精品欧美一区二区精品久久 | 狠狠色综合久久婷婷色天使 | 久久成人永久免费播放 | 韩国日本在线观看 | 欧美人与禽交片在线播放 | 日韩精品一区二区三区中文字幕 | 成年美女黄网色大观看全 | blacked黑人hd2021| 特黄特黄一级片 | 欧美亚洲国产综合在线 | 色播艾小青国产专区在线播放 | 91专区| 四虎免费影院ww4164h | 日本视频免费在线 | 四虎永久成人免费 | freexxxx性大陆另类 | 久久91精品国产91久 | 精品国产自在现线拍400部 | 国产一区二区三区免费在线视频 | 四虎色影院 | 国产成人一级 |