using System; using System.Collections.Generic; using System.Data.SqlClient; using System.Data; using System.Linq; using System.Text; using System.Threading.Tasks; namespace MisDataSaveDate.Helper { /// /// MES系统日志类型枚举 /// public enum MesLogType { /// /// 信息日志 /// INFO, /// /// 警告日志 /// WARNING, /// /// 错误日志 /// ERROR } public class ApiLogHelper { /// /// 验证属性值是否有效 /// /// /// /// /// public static bool ValidateProperty(object value, string fieldName, out string errorMessage) { if (value == null || value.ToString() == "") { errorMessage = $"参数{fieldName}值格式不正确"; return false; } errorMessage = string.Empty; // 无错误 return true; } /// /// 非必填项Null值处理 /// /// /// /// /// public static string VHandle(string value) { return value == null ? "" : value; } /// /// /// /// /// 1. 主动调用接口 2. 被调用接口 /// /// /// public static void SaveLog_Interface_Request(string url, int type, string context, out int AID) { //存储日志 var CreateTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"); var param1 = new SqlParameter[] { new SqlParameter("@接口地址",url), new SqlParameter("@接口类型",type), new SqlParameter("@请求内容",context), new SqlParameter("@请求时间",CreateTime) }; DataLinkMesWork2.DataAccess2.ExecuteStoredProcedure("接口_IOT接口交互日志_请求记录", ref param1, out DataTable dt, out string errorMessage); AID = int.Parse(dt.Rows[0][0].ToString()); } /// /// /// /// /// public static void SaveLog_Interface_Response(string context, int AID) { //存储日志 var CreateTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"); //Event_MOM_Log_Insert,@创建时间,@内容 var param1 = new SqlParameter[] { new SqlParameter("@响应时间",CreateTime), new SqlParameter("@响应内容",context), new SqlParameter("@AID",AID) }; DataLinkMesWork2.DataAccess2.ExecuteStoredProcedure("接口_IOT接口交互日志_响应记录", ref param1, out string errorMessage); } /// /// 保存MES系统日志到数据库 /// /// 工位号/模块名称 /// 日志内容 /// 日志类型:INFO/WARNING/ERROR public static void SaveMesLog(string opName, string logText, MesLogType logType = MesLogType.INFO) { string logTypeStr = logType.ToString(); var param1 = new SqlParameter[] { new SqlParameter("@工位号", opName), new SqlParameter("@日志类型", logTypeStr), new SqlParameter("@日志文本", logText), }; try { DataLinkMesWork2.DataAccess2.ExecuteStoredProcedure("MES_系统日志_增加", ref param1, out DataTable dt, out string errorMessage); // 同时记录到Log4Net if (logType == MesLogType.ERROR) { MyLog4Net.MyLogHelper.Error("MesLog", $"[{opName}] {logText}"); } else if (logType == MesLogType.WARNING) { MyLog4Net.MyLogHelper.Error("MesLog", $"[{opName}] {logText}"); } else { MyLog4Net.MyLogHelper.Info("MesLog", $"[{opName}] {logText}"); } if (!string.IsNullOrEmpty(errorMessage)) { MyLog4Net.MyLogHelper.Error("SaveMesLog", $"保存日志到数据库失败:{errorMessage}"); } } catch (Exception ex) { MyLog4Net.MyLogHelper.Error("SaveMesLog", $"保存日志异常:{ex.Message}"); } } } }