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}");
}
}
}
}