如何在 C# ASP.NET WebAPI 中為記錄目的建立日誌篩選器?


操作篩選器用於在操作方法執行之前或之後新增額外的邏輯。OnActionExecuting 和 OnActionExecuted 方法用於在操作方法執行之前或之後新增邏輯。

讓我們建立一個實現記錄一些操作方法執行前後資訊的操作篩選器 LogAttribute。

LogAttribute

示例

using System;
using System.Diagnostics;
using System.Web.Http.Controllers;
using System.Web.Http.Filters;
namespace DemoWebApplication.Controllers{
   public class LogAttribute : ActionFilterAttribute {
      public override void OnActionExecuting(HttpActionContext actionContext){
         Debug.WriteLine(string.Format("Action Method {0} executing at {1}",
            actionContext.ActionDescriptor.ActionName, DateTime.Now.ToShortDateString()),
            "Web API Logs");
      }
      public override void OnActionExecuted(HttpActionExecutedContext
      actionExecutedContext){
         Debug.WriteLine(string.Format("Action Method {0} executed at {1}",
         actionExecutedContext.ActionContext.ActionDescriptor.ActionName,
         DateTime.Now.ToShortDateString()), "Web API Logs");
      }
   }
}

控制器操作

示例

using System.Web.Http;
namespace DemoWebApplication.Controllers{
   public class DemoController : ApiController{
      [Log]
      public IHttpActionResult Get(){
         //Some logic
         return Ok();
      }
   }
}

由於我們使用了具有 OnActionExecuting 和 OnActionExecuted 方法實現的 Log 特性,因此日誌資訊將被新增到除錯控制檯。


更新於:2020 年 8 月 19 日

1K+ 次瀏覽

事業起步

完成課程並獲得認證

開始操作
廣告
© . All rights reserved.