using Newtonsoft.Json; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; namespace XS_DAL { /// /// 日志记录类 /// public static class LogHelper { /// /// 系统异常日志 /// /// 异常类 public static void ErrorLog(Exception ex) { try { string path = System.Environment.CurrentDirectory; string threadId = Thread.CurrentThread.ManagedThreadId.ToString(); string fName = path + "\\ErrorLog\\线程" + threadId + " " + DateTime.Now.ToString("yyyy-MM-dd") + ".log"; string newPath = path + "\\ErrorLog\\"; if (!System.IO.Directory.Exists(newPath)) { System.IO.Directory.CreateDirectory(newPath); } FileInfo fileInfo = new FileInfo(fName); if (fileInfo.Exists == false) { using (StreamWriter sw = fileInfo.CreateText()) { sw.WriteLine("/********************************************************************************/"); sw.WriteLine("时间:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss ffff")); sw.WriteLine("信息:" + ex.Message); sw.WriteLine("实例:" + ex.InnerException); sw.WriteLine("方法:" + ex.TargetSite); sw.WriteLine("堆栈:" + ex.StackTrace); sw.WriteLine(); sw.Flush(); sw.Close(); } FilesDelete(fileInfo.DirectoryName); } else { using (StreamWriter sw = fileInfo.AppendText()) { sw.WriteLine("/********************************************************************************/"); sw.WriteLine("时间:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss ffff")); sw.WriteLine("信息:" + ex.Message); sw.WriteLine("实例:" + ex.InnerException); sw.WriteLine("方法:" + ex.TargetSite); sw.WriteLine("堆栈:" + ex.StackTrace); sw.WriteLine(); sw.Flush(); sw.Close(); } } } catch (Exception) { } } /// /// 系统异常日志 /// /// 目录名 /// 异常类 public static void ErrorLog(string dName, Exception ex) { try { string path = System.Environment.CurrentDirectory; string newPath = path + "\\" + dName + "\\"; if (!System.IO.Directory.Exists(newPath)) { System.IO.Directory.CreateDirectory(newPath); } string fName = newPath + DateTime.Now.ToString("yyyy-MM-dd") + ".log"; FileInfo fileInfo = new FileInfo(fName); if (fileInfo.Exists == false) { using (StreamWriter sw = fileInfo.CreateText()) { sw.WriteLine("/********************************************************************************/"); sw.WriteLine("时间:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss ffff")); sw.WriteLine("信息:" + ex.Message); sw.WriteLine("实例:" + ex.InnerException); sw.WriteLine("方法:" + ex.TargetSite); sw.WriteLine("堆栈:" + ex.StackTrace); sw.WriteLine(); sw.Flush(); sw.Close(); } FilesDelete(fileInfo.DirectoryName); } else { using (StreamWriter sw = fileInfo.AppendText()) { sw.WriteLine("/********************************************************************************/"); sw.WriteLine("时间:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss ffff")); sw.WriteLine("信息:" + ex.Message); sw.WriteLine("实例:" + ex.InnerException); sw.WriteLine("方法:" + ex.TargetSite); sw.WriteLine("堆栈:" + ex.StackTrace); sw.WriteLine(); sw.Flush(); sw.Close(); } } } catch (Exception) { } } /// /// 接口收发日志 /// /// 方法名 /// 发送 /// 接收 public static void InterfaceLog(string strFunctionName, string strSend, string strRecieve) { try { string path = System.Environment.CurrentDirectory + "\\InterfaceLog\\"; string fName = DateTime.Now.ToString("yyyy-MM-dd") + ".log"; if (!System.IO.Directory.Exists(path)) { System.IO.Directory.CreateDirectory(path); } FileInfo fileInfo = new FileInfo(path + fName); if (fileInfo.Exists == false) { using (StreamWriter sw = fileInfo.CreateText()) { sw.WriteLine("/********************************************************************************/"); sw.WriteLine("时间:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss ffff")); sw.WriteLine("方法:" + strFunctionName); sw.WriteLine("发送:" + strSend); sw.WriteLine("收到:" + strRecieve); sw.WriteLine(); sw.Flush(); sw.Close(); } FilesDelete(fileInfo.DirectoryName); } else { using (StreamWriter sw = fileInfo.AppendText()) { sw.WriteLine("/********************************************************************************/"); sw.WriteLine("时间:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss ffff")); sw.WriteLine("方法:" + strFunctionName); sw.WriteLine("发送:" + strSend); sw.WriteLine("收到:" + strRecieve); sw.WriteLine(); sw.Flush(); sw.Close(); } } } catch (Exception) { } } /// /// 操作日志 /// /// 日志信息 public static void OperateLog(string dirName, string messsage) { try { string path = System.Environment.CurrentDirectory; string newPath = path + "\\" + dirName + "\\"; if (!System.IO.Directory.Exists(newPath)) { System.IO.Directory.CreateDirectory(newPath); } string fName = newPath + DateTime.Now.ToString("yyyy-MM-dd") + ".log"; FileInfo fileInfo = new FileInfo(fName); if (fileInfo.Exists == false) { using (StreamWriter sw = fileInfo.CreateText()) { sw.WriteLine("时间:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss ffff")); sw.WriteLine("内容:" + messsage); sw.WriteLine(); sw.Flush(); sw.Close(); } FilesDelete(fileInfo.DirectoryName); } else { using (StreamWriter sw = fileInfo.AppendText()) { sw.WriteLine("时间:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss ffff")); sw.WriteLine("内容:" + messsage); sw.WriteLine(); sw.Flush(); sw.Close(); } } } catch (Exception) { } } /// /// 创建接口访问日志 /// /// 方法名 /// 请求JSON /// 返回JSON public static void LogOperation(string methodName, string requestJson, string returnJson) { try { string path = System.Environment.CurrentDirectory; string newPath = path + "\\" + methodName + "\\"; if (!System.IO.Directory.Exists(newPath)) { System.IO.Directory.CreateDirectory(newPath); } string fName = newPath + DateTime.Now.ToString("yyyy-MM-dd") + ".log"; FileInfo fileInfo = new FileInfo(fName); if (fileInfo.Exists == false) { using (StreamWriter sw = fileInfo.CreateText()) { sw.WriteLine("时间:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss ffff")); sw.WriteLine("请求:" + requestJson.Replace("\r\n", "").Replace("\n", "")); sw.WriteLine("反馈:" + returnJson.Replace("\r\n", "").Replace("\n", "")); sw.WriteLine(); sw.Flush(); sw.Close(); } FilesDelete(fileInfo.DirectoryName); } else { using (StreamWriter sw = fileInfo.AppendText()) { sw.WriteLine("时间:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss ffff")); sw.WriteLine("请求:" + requestJson.Replace("\r\n", "").Replace("\n", "")); sw.WriteLine("反馈:" + returnJson.Replace("\r\n", "").Replace("\n", "")); sw.WriteLine(); sw.Flush(); sw.Close(); } } } catch (Exception) { } } private static void FilesDelete(string delURL, string suffix = ".log", int days = 30) { try { DirectoryInfo root = new DirectoryInfo(delURL); FileInfo[] files = root.GetFiles(); if (files.Length <= 10) { return; } foreach (FileInfo fi in files) { if (fi.Extension.ToUpper() == suffix.ToUpper()) { DateTime createTime = fi.CreationTime; DateTime newTime = DateTime.Now.AddDays(-1); if (Convert.ToDateTime(fi.CreationTime) <= DateTime.Now.AddDays(-days)) { createTime = fi.CreationTime; fi.Delete(); } } } } catch (Exception) { throw; } } } }