2015-09-25 30 views

回答

6

您可以創建自己的繼承自ActionFilterAttribute的類,然後覆蓋OnActionExecuting方法。

public class LogActionAttribute : ActionFilterAttribute 
{ 
    public override void OnActionExecuting(ActionExecutingContext filterContext) 
    { 

     var controller = filterContext.RequestContext.RouteData.Values["Controller"]; 
     var action = filterContext.RequestContext.RouteData.Values["Action"]; 

     // 
     // Perform logging here 
     // 

     base.OnActionExecuting(filterContext); 
    } 
} 

public class HomeController : Controller 
{ 
    [LogActionAttribute] 
    public ActionResult Index() 
    { 

     return View(); 
    } 

} 

希望這有助於!

+0

不錯THOROUGH答案;) – Eminem

0

您可以嘗試使用Audit.NET庫,其Audit.MVC和不同的數據提供程序將日誌存儲在文件,事件日誌,sql,redis,mongo等等。

隨着MVC擴展你只需要一個屬性來裝飾你的控制器或動作:

[Audit] 
public class HomeController : Controller 
{ ... } 

執行靜態配置來設置日誌的輸出:

Audit.Core.Configuration.Setup() 
    .UseFileLogProvider(_ => _ 
     .Directory(@"C:\Logs")); 

,它會提供基礎結構來記錄與MVC應用程序的交互。

相關問題