/******************************
* 说明:数据库存放日志类
* 创建人:龚宇超
* 创建日期: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)
{
}
}
}
}