Computer >> Máy Tính >  >> Lập trình >> C#

Làm cách nào chúng ta có thể tạo bộ lọc LOG cho mục đích Ghi nhật ký trong C # ASP.NET WebAPI?

Các bộ lọc hành động được sử dụng để thêm logic bổ sung trước hoặc sau khi thực thi các phương thức hành động.

Hãy để chúng tôi tạo một LogAttribute để cung cấp ActionFilterAttribute cung cấp thông tin lôgic trước và sau khi thực thi phương thức hành động.

LogAttribute -

Ví dụ

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");
      }
   }
}

Hành động của bộ điều khiển -

Ví dụ

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

Vì chúng tôi đã sử dụng thuộc tính Log có triển khai các phương thức OnActionExecuting vàOnActionExecuted nên thông tin nhật ký sẽ được thêm vào bảng điều khiển gỡ lỗi.

Làm cách nào chúng ta có thể tạo bộ lọc LOG cho mục đích Ghi nhật ký trong C # ASP.NET WebAPI?