ApiLog.cs 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. using System;
  2. using System.Web;
  3. using Curtain.DataAccess;
  4. /// <summary>
  5. /// PLC执行日志 xuwei modify 2020-07-14 简化webapi方法
  6. /// </summary>
  7. public class ApiLog
  8. {
  9. /// <summary>
  10. /// 接口类型
  11. /// </summary>
  12. public enum ApiType
  13. {
  14. /// <summary>
  15. /// WebApi
  16. /// </summary>
  17. WebApi,
  18. /// <summary>
  19. /// WebService
  20. /// </summary>
  21. WebService
  22. }
  23. /// <summary>
  24. /// 接口请求方式
  25. /// </summary>
  26. public enum ApiRuquest
  27. {
  28. /// <summary>
  29. /// Get方式
  30. /// </summary>
  31. Get,
  32. /// <summary>
  33. /// Post方式
  34. /// </summary>
  35. Post
  36. }
  37. /// <summary>
  38. /// PLC执行操作写入日志
  39. /// </summary>
  40. /// <param name="name">接口名称</param>
  41. /// <param name="type">接口类型</param>
  42. /// <param name="request">接口请求方式</param>
  43. /// <param name="url">接口地址</param>
  44. /// <param name="method">接口方法名(用于WEBSERVICE)</param>
  45. /// <param name="parameter">接口请求参数JSON格式</param>
  46. /// <param name="status">接口请求状态</param>
  47. /// <param name="result">接口请求结果</param>
  48. /// <param name="apiid">接口ID用于统计</param>
  49. /// <param name="barcodecount">条码数量用于统计</param>
  50. public static void WriteApiLog(string name, ApiType type, ApiRuquest request, string url, string method, string parameter,
  51. bool status, string result, int apiid = 0, int barcodecount = 1)
  52. {
  53. try
  54. {
  55. if (HttpContext.Current.Request.Url.Host.ToLower() == HttpContext.Current.Request.UserHostAddress.ToLower())
  56. {
  57. return;
  58. }
  59. using (IDataAccess conn = DataAccess.Create())
  60. {
  61. string sqlString = @"
  62. INSERT INTO TP_MST_APILOG
  63. (APIID
  64. ,NAME
  65. ,TYPE
  66. ,REQUEST
  67. ,URL
  68. ,METHOD
  69. ,PARAMETER
  70. ,STATUS
  71. ,RESULT
  72. ,BARCODECOUNT
  73. ,GUESTIP
  74. ,GUESTHOST)
  75. VALUES
  76. (@APIID@
  77. ,@NAME@
  78. ,@TYPE@
  79. ,@REQUEST@
  80. ,@URL@
  81. ,@METHOD@
  82. ,@PARAMETER@
  83. ,@STATUS@
  84. ,@RESULT@
  85. ,@BARCODECOUNT@
  86. ,@GUESTIP@
  87. ,@GUESTHOST@)";
  88. CDAParameter[] paras = new CDAParameter[]
  89. {
  90. new CDAParameter("APIID", apiid),
  91. new CDAParameter("NAME", name),
  92. new CDAParameter("TYPE", type.ToString()),
  93. new CDAParameter("REQUEST", request.ToString()),
  94. new CDAParameter("URL", url),
  95. new CDAParameter("METHOD", method),
  96. new CDAParameter("PARAMETER", parameter),
  97. new CDAParameter("STATUS", status ? '1' : '0'),
  98. new CDAParameter("RESULT", result),
  99. new CDAParameter("BARCODECOUNT", barcodecount),
  100. new CDAParameter("GUESTIP", HttpContext.Current.Request.UserHostAddress),
  101. new CDAParameter("GUESTHOST", HttpContext.Current.Request.UserHostName),
  102. };
  103. conn.BeginTransaction();
  104. conn.ExecuteNonQuery(sqlString, paras);
  105. conn.Commit();
  106. }
  107. }
  108. catch (Exception ex)
  109. {
  110. throw ex;
  111. }
  112. }
  113. /// <summary>
  114. /// 简化的webapi写日志方法
  115. /// </summary>
  116. /// <param name="name"></param>
  117. /// <param name="url"></param>
  118. /// <param name="status"></param>
  119. /// <param name="result"></param>
  120. /// <param name="apiid"></param>
  121. public static void WriteApiLog(string name, string url, bool status, string result, int apiid = 0, int barcodecount = 1)
  122. {
  123. WriteApiLog(name, ApiType.WebApi, ApiRuquest.Get, url, "", "", status, result, apiid, barcodecount);
  124. }
  125. }