zoukankan      html  css  js  c++  java
  • AOP编程

    AOP工具类
    public class AroundAdvice : IMethodInterceptor
    {
    bool logurl = true;
    public AroundAdvice()
    {
    Task.Run(() => {
    logurl = WebUtils.UrlValidateCheck(SystemAddress.LogServiceUrl);
    });
    }
    public object Invoke(IMethodInvocation invocation)
    {
    string guid = Guid.NewGuid().ToString();
    object result = null;
    string actionName = invocation.TargetType.FullName + "/" + invocation.Method.Name;
    string strMessageStart = string.Format("开始-唯一标识:{0},类名:{1},方法名:{2},传参:{3}", guid, invocation.TargetType.FullName, invocation.Method.Name, Newtonsoft.Json.JsonConvert.SerializeObject(invocation.Arguments));
    try
    {
    WriteLog(invocation.TargetType.ToString(), actionName, strMessageStart);

    result = invocation.Proceed();

    string strMessageEnd = string.Format("结束-唯一标识:{0},类名:{1},方法名:{2},返回结果——请求:{3}", guid, invocation.TargetType.FullName, invocation.Method.Name, "Response:" + Newtonsoft.Json.JsonConvert.SerializeObject(result) + ",Request:" + Newtonsoft.Json.JsonConvert.SerializeObject(invocation.Arguments));
    WriteLog(invocation.TargetType.ToString(), actionName, strMessageEnd);
    }
    catch (Exception ex)
    { }


    return result;
    }

    /// <summary>
    /// 日志记录方法
    /// </summary>
    /// <param name="context"></param>
    /// <param name="actionName"></param>
    /// <param name="massage"></param>
    public void WriteLog(string messageType,string actionName, string massage)
    {
    var log = LogFactory.GetLogger(messageType);
    //bool logurl = WebUtils.UrlValidateCheck(SystemAddress.LogServiceUrl);
    if (logurl)
    {
    Task.Run(() =>
    {
    try
    {
    ExFreshLog.Instance.Info(actionName, massage + ";IP:" + Net.Ip);
    }
    catch (Exception ex)
    {
    // log.InfoByLocal(massage);
    }
    });
    }
    // else
    // log.InfoByLocal(massage);
    }
    }

  • 相关阅读:
    Linux I/O状态实时监控iostat
    Linux系统常用监控系统状态信息命令
    Linux查看网络信息命令
    Linux服务器进程信息查看命令
    Linux服务器的日志管理
    Linux令普通用户拥有root权限
    linux后台运行之&和nohup区别,模拟后台守护进程
    Linux之shell终端使用操作快捷键
    linux解压缩命令之unzip,tar(持续更新)
    Centos7 安装部署redis及其入门使用
  • 原文地址:https://www.cnblogs.com/badboys/p/7582054.html
Copyright © 2011-2022 走看看