你的位置:首页 > 软件开发 > ASP.net > 学习总结 之 WebApi服务监控 log4net记录监控日志

学习总结 之 WebApi服务监控 log4net记录监控日志

发布时间:2016-04-23 15:00:03
在请求WebApi 的时候,我们更想知道在请求数据的时候,调用了哪个接口传了什么参数过来,调用这个Action花了多少时间,有没有人恶意请求。我们可以通过记录日志,对Action进行优化,可以通过日志追踪是哪个用户或ip恶意请求。在项目中引用log4net.dll定义一个WebA ...

在请求WebApi 的时候,我们更想知道在请求数据的时候,调用了哪个接口传了什么参数过来,调用这个Action花了多少时间,有没有人恶意请求。我们可以通过记录日志,对Action进行优化,可以通过日志追踪是哪个用户或ip恶意请求。

在项目中引用log4net.dll

定义一个WebApiMonitorLog ,监控日志对象

学习总结 之 WebApi服务监控 log4net记录监控日志学习总结 之 WebApi服务监控 log4net记录监控日志
/// <summary>  /// 监控日志对象  /// </summary>  public class WebApiMonitorLog  {    public get='_blank'>string ControllerName { get; set; }    public string ActionName { get; set; }    public DateTime ExecuteStartTime { get; set; }    public DateTime ExecuteEndTime { get; set; }    /// <summary>    /// 请求的Action 参数    /// </summary>    public Dictionary<string, object> ActionParams { get; set; }    /// <summary>    /// Http请求头    /// </summary>    public string HttpRequestHeaders { get; set; }    /// <summary>    /// 请求方式    /// </summary>    public string HttpMethod { get; set; }    /// <summary>    /// 请求的IP地址    /// </summary>    public string IP { get; set; }    /// <summary>    /// 获取监控指标日志    /// </summary>    /// <param name="mtype"></param>    /// <returns></returns>    public string GetLoginfo()    {      string Msg = @"      Action执行时间监控:      ControllerName:{0}Controller      ActionName:{1}      开始时间:{2}      结束时间:{3}      总 时 间:{4}秒      Action参数:{5}      Http请求头:{6}      客户端IP:{7},      HttpMethod:{8}          ";      return string.Format(Msg,        ControllerName,        ActionName,        ExecuteStartTime,        ExecuteEndTime,        (ExecuteEndTime - ExecuteStartTime).TotalSeconds,        GetCollections(ActionParams),        HttpRequestHeaders,        IP,        HttpMethod);    }    /// <summary>    /// 获取Action 参数    /// </summary>    /// <param name="Collections"></param>    /// <returns></returns>    public string GetCollections(Dictionary<string, object> Collections)    {      string Parameters = string.Empty;      if (Collections == null || Collections.Count == 0)      {        return Parameters;      }      foreach (string key in Collections.Keys)      {        Parameters += string.Format("{0}={1}&", key, Collections[key]);      }      if (!string.IsNullOrWhiteSpace(Parameters) && Parameters.EndsWith("&"))      {        Parameters = Parameters.Substring(0, Parameters.Length - 1);      }      return Parameters;    }    /// <summary>    /// 获取IP    /// </summary>    /// <returns></returns>    public string GetIP()    {      string ip = string.Empty;      if (!string.IsNullOrEmpty(System.Web.HttpContext.Current.Request.ServerVariables["HTTP_VIA"]))        ip = Convert.ToString(System.Web.HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"]);      if (string.IsNullOrEmpty(ip))        ip = Convert.ToString(System.Web.HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"]);      return ip;    }  }

原标题:学习总结 之 WebApi服务监控 log4net记录监控日志

关键词:web

web
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。