191 lines
7.0 KiB
C#
191 lines
7.0 KiB
C#
/******************************
|
|
* 说明:数据库存放日志类
|
|
* 创建人:龚宇超
|
|
* 创建日期: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
|
|
{
|
|
/// <summary>
|
|
/// 数据库存放日志类
|
|
/// </summary>
|
|
public sealed class LogUtil
|
|
{
|
|
/// <summary>
|
|
/// <para>说明:</para>
|
|
/// <para>创建人:龚宇超</para>
|
|
/// <para>创建日期:2019-08-16 </para>
|
|
/// <para>修改人:</para>
|
|
/// <para>修改日期:</para>
|
|
/// <para>修改备注:</para>
|
|
/// <para>版本:1.0</para>
|
|
/// </summary>
|
|
/// <param name="menuId">模块编号</param>
|
|
/// <param name="type">操作类型(添加、删除、修改、保存、导入、导出等操作)</param>
|
|
/// <param name="content">内容(模块名称)</param>
|
|
/// <param name="obj">内容2(打开xxx模块,添加xxx记录,删除xxx记录)</param>
|
|
/// <param name="ModuleId">模块id</param>
|
|
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);
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// <para>说明:写入error日志</para>
|
|
/// <para>创建人:龚宇超</para>
|
|
/// <para>创建日期:2017-08-21 </para>
|
|
/// <para>修改人:</para>
|
|
/// <para>修改日期:</para>
|
|
/// <para>修改备注:</para>
|
|
/// <para>版本:1.0</para>
|
|
/// </summary>
|
|
/// <param name="content">操作内容</param>
|
|
/// <param name="error">异常内容</param>
|
|
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);
|
|
}
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// <para>说明:写入错误对照表</para>
|
|
/// <para>创建人:曹屹峰</para>
|
|
/// <para>创建日期:2021-08-10 </para>
|
|
/// <para>修改人:</para>
|
|
/// <para>修改日期:</para>
|
|
/// <para>修改备注:</para>
|
|
/// <para>版本:1.0</para>
|
|
/// </summary>
|
|
/// <param name="content">操作内容</param>
|
|
/// <param name="error">异常内容</param>
|
|
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)
|
|
{
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
}
|