zoukankan      html  css  js  c++  java
  • 一个简单的ActionFilter

    [AttributeUsage(AttributeTargets.Class|AttributeTargets.Method,
    Inherited
    =true,AllowMultiple=true)]
    public class LogAttribute :FilterAttribute,IActionFilter,IResultFilter
    {
    public string LogName { get; set; }

    public void Log(string controller, string action, string msg)
    {
    if (!string.IsNullOrEmpty(LogName))
    {
    TextWriter writer
    = new StreamWriter(LogName, true);
    writer.WriteLine(
    "Time:{0}", DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss"));
    writer.WriteLine(
    "Controller:{0}", controller);
    writer.WriteLine(
    "Action:{0}", action);
    writer.WriteLine(
    "Msg:{0}", msg);
    writer.WriteLine(
    "System:{0}", System.Environment.OSVersion.Version.ToString());
    writer.WriteLine(
    "ThreadID:{0}", AppDomain.GetCurrentThreadId());
    writer.Close();
    }
    }

    public void OnActionExecuting(ActionExecutingContext filterContext)
    {
    Log(filterContext.RouteData.Values[
    "controller"].ToString(), filterContext.RouteData.Values["action"].ToString(), "Action Executing...");
    }

    public void OnActionExecuted(ActionExecutedContext filterContext)
    {
    Log(filterContext.RouteData.Values[
    "controller"].ToString(), filterContext.RouteData.Values["action"].ToString(), "Action Executed.");
    }

    public void OnResultExecuting(ResultExecutingContext filterContext)
    {
    Log(filterContext.RouteData.Values[
    "controller"].ToString(),
    filterContext.RouteData.Values[
    "action"].ToString(),
    "Result executing...");
    }

    public void OnResultExecuted(ResultExecutedContext filterContext)
    {
    Log(filterContext.RouteData.Values[
    "controller"].ToString(),
    filterContext.RouteData.Values[
    "action"].ToString(),
    "Result executed");
    }

    }
  • 相关阅读:
    TP5 中通过Request获取到的 Action不同的环境,大小写不一样
    正则符号
    ubuntu mysql卸载重装
    ubuntu 多域名配置
    微信小程序-开发入门(一)
    Maven通过profiles多环境配置打包
    GitLab多机备份与恢复操作
    动态增加linux目录大小
    MQ队列及常见操作
    ②将SVN迁移到GitLab-多分支多标签迁移
  • 原文地址:https://www.cnblogs.com/pingjiang/p/1869201.html
Copyright © 2011-2022 走看看