Computer >> 컴퓨터 >  >> 프로그램 작성 >> C#

C# ASP.NET WebAPI에서 로깅을 위한 LOG 필터를 어떻게 만들 수 있습니까?

<시간/>

작업 필터는 작업 메서드 실행 전후에 추가 논리를 추가하는 데 사용됩니다. OnActionExecuting 및 OnActionExecuted 메서드는 작업 메서드가 실행되기 전후에 논리를 추가하는 데 사용됩니다.

액션 메서드 실행 전후에 일부 정보를 기록하는 ActionFilterAttribute를 구현하는 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 속성을 사용했기 때문에 디버그 콘솔에 로그 정보가 추가됩니다.

C# ASP.NET WebAPI에서 로깅을 위한 LOG 필터를 어떻게 만들 수 있습니까?