using System; using System.IO; using System.Text; namespace Controls.Helper { public class LoggerHelper { private static object o = new object(); private static string GetLogFilePath() { string filePath = AppDomain.CurrentDomain.BaseDirectory + @"\Log\ExeConfig\"; //判断路径、文件是否存在,如不存在则生成相关资源 if (!Directory.Exists(filePath)) { Directory.CreateDirectory(filePath); } //设置文件名 string currtime = DateTime.Now.ToString("yyyyMMdd"); filePath = filePath +currtime + ".log"; if (!File.Exists(filePath)) { FileStream fs = File.Create(filePath); fs.Close(); } return filePath; } public static void WriteLog(string errorStr, Exception e) { try { lock (o) { string filepath = GetLogFilePath(); StreamWriter writer = new StreamWriter(filepath, true, Encoding.GetEncoding("utf-8")); string title = string.Format("================================{0}================================", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff")); writer.WriteLine(string.Empty); writer.WriteLine(title); writer.WriteLine(string.Format("错误内容:{0}", errorStr)); if (e != null) { writer.WriteLine(string.Format("异常信息:{0}", e.ToString())); writer.WriteLine(string.Format("错误消息: {0}", e.Message + (e.InnerException == null ? "" : e.InnerException.Message))); writer.WriteLine(string.Format("调用堆栈: {0}", e.StackTrace)); } writer.WriteLine(title); writer.WriteLine(string.Empty); writer.Flush(); writer.Close(); } } catch (Exception ex) { } } } }