/****************************** * 说明:数据库存放日志类 * 创建人:龚宇超 * 创建日期:2017-08-21 * 修改人: * 修改日期: * 修改备注: * 版本:1.0.0.0 ******************************/ using System; using System.Collections.Generic; using System.Linq; using System.Text; using Lskj.Model; using Lskj.Core; using Lskj.Util; using System.Text.RegularExpressions; using Lskj.Business.Impl; namespace Lskj.Business { /// /// 数据库存放日志类 /// public sealed class LogUtil { /// /// 说明: /// 创建人:龚宇超 /// 创建日期:2019-08-16 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// /// 模块编号 /// 操作类型(添加、删除、修改、保存、导入、导出等操作) /// 内容(模块名称) /// 内容2(打开xxx模块,添加xxx记录,删除xxx记录) /// 模块id public static void WriteDebug(string menuId, string type, string content, string obj, string ModuleId = "") { try { //if (!BaseImpl.HasExistsColumn("P_LogTab", "IPAddress")) //{ // SqlHelper.ExecuteNonQuery("alter table P_LogTab add IPAddress varchar(500)"); //} //if (!BaseImpl.HasExistsColumn("P_LogTab", "MacAddress")) //{ // SqlHelper.ExecuteNonQuery("alter table P_LogTab add MacAddress varchar(500)"); //} //if (!BaseImpl.HasExistsColumn("P_LogTab", "ModuleId")) //{ // SqlHelper.ExecuteNonQuery("alter table P_LogTab add ModuleId varchar(500)"); //} //string ModuleCode = string.Empty; //string ModuleId = string.Empty; //if (isOpenModule) //{ // //打开模块时,传入的是模块id,获取编号 // ModuleCode = SqlHelper.ExecuteScalar(string.Format("select PurviewId from P_FormMenuConfigTab where MenuId='{0}'", menuId)) + ""; // ModuleId = menuId; //} //else //{ // //正常操作时,传入的是模块编号,获取模块id // ModuleId = SqlHelper.ExecuteScalar(string.Format("select top 1 MenuId from P_FormMenuConfigTab where PurviewId='{0}' and MenuCaption='{1}'", menuId)) + ""; // ModuleCode = menuId; //} string sqlValue = string.Format("insert into P_LogTab(coid,systemtmp,[type],content,[object],stdt,operator,ws,IPAddress,MacAddress,ModuleId) values('{0}',getdate(),'{1}','{2}','{3}',getdate(),'{4}','{5}','{6}','{7}','{8}')", menuId, type, content, obj, ERPInfo.Instance.UserName, ERPInfo.Instance.WindowName, ERPInfo.Instance.LoginIPV4, ERPInfo.Instance.MacAddress, ModuleId); if (type.Equals("关闭模块")) { sqlValue = string.Format("insert into P_LogTab(coid,systemtmp,[type],content,[object],eddt,operator,ws,IPAddress,MacAddress,ModuleId) values('{0}',getdate(),'{1}','{2}','{3}',getdate(),'{4}','{5}','{6}','{7}','{8}')", menuId, type, content, obj, ERPInfo.Instance.UserName, ERPInfo.Instance.WindowName, ERPInfo.Instance.LoginIPV4, ERPInfo.Instance.MacAddress, ModuleId); } SqlHelper.ExecuteNonQuery(sqlValue); } catch (Exception ex) { WriteError("日志记录出错错误", ex); } } /// /// 说明:写入error日志 /// 创建人:龚宇超 /// 创建日期:2017-08-21 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// /// 操作内容 /// 异常内容 public static void WriteError(string content, Exception ex) { try { string exmessage = Regex.Replace(ex.Message, "'", "''"); //if (!BaseImpl.HasExistsColumn("p_errlogtab", "IPAddress")) //{ // SqlHelper.ExecuteNonQuery("alter table p_errlogtab add IPAddress varchar(500)"); //} //if (!BaseImpl.HasExistsColumn("p_errlogtab", "MacAddress")) //{ // SqlHelper.ExecuteNonQuery("alter table p_errlogtab add MacAddress varchar(500)"); //} string sqlValue = string.Format("insert into p_errlogtab(Operatedate,Operator,Content,ErrMsg,Ws,IPAddress,MacAddress) values(getdate(),'{0}','{1}','{2}','{3}','{4}','{5}')", ERPInfo.Instance.UserName, content, exmessage + "\r\n" + ex.StackTrace, ERPInfo.Instance.WindowName, ERPInfo.Instance.LoginIPV4, ERPInfo.Instance.MacAddress); SqlHelper.ExecuteNonQuery(sqlValue); } catch (Exception) { } finally { LogHelper.Instance.WriteError(ex); } } /// /// 说明:写入错误对照表 /// 创建人:曹屹峰 /// 创建日期:2021-08-10 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// /// 操作内容 /// 异常内容 public static void WriteP_ErrMessageCpt(string p_ErrId, string p_ErrMsg, string p_DllName, string Ftype, string theDatabase) { try { DateTime currentTime = System.DateTime.Now; string sqlValue = string.Format("insert into {4}(p_ErrId,p_ErrMsg,p_DllName,P_ErrType,p_ErrTime) values('{0}','{1}','{2}','{3}',getdate())", p_ErrId, p_ErrMsg, p_DllName, Ftype, theDatabase); SqlHelper.ExecuteNonQuery(sqlValue); } catch (Exception) { } } public static void WriteP_ErrMessageCptTime(string id) { try { string sqlValue = string.Format("UPDATE p_ErrMessageCpt SET p_ErrTime=getdate() WHERE Id='{0}'", id); SqlHelper.ExecuteNonQuery(sqlValue); } catch (Exception) { } } } }