使用log4Net或Enterprise Library记录事件



我有一个遗留的MVC应用程序。我不想干扰所有的操作方法,但我想记录用户活动,以及调用的一系列方法和传递的输入参数值,如果这个过程中有任何异常的话。有没有一种方法可以让我使用.net反射或任何mvc过滤器进行最小的更改。

您可以使用ActionFilterAttribute(https://learn.microsoft.com/fr-fr/aspnet/mvc/overview/older-versions-1/controllers-and-routing/understanding-action-filters-cs)

如果你在.NET核心:

public class UserActivityFilter : ActionFilterAttribute
{
public override async Task OnActionExecutionAsync(ActionExecutingContext context, ActionExecutingDelegate next)
{
await next();
// here get your logger service (example )
var logger = context.HttpConcet.RequestServices.GetService(typeof(ILogger)) as ILogDataOperations;
await logger.LogUserActivity(context.HttpContext.User.Name, context.HttpContext.Request.Path);
}
}

把你的控制器:

[Authorize]
[UserActivityFilter]
public class BaseController : Controller
{
...
}

最新更新