using System; using System.Collections.Generic; using System.Text; using System.Configuration; using System.Collections; using System.IO; using System.Windows.Forms; namespace Cyberpipe { public class LogError { public static void PublishError(Exception e) { if (e.Data.Count > 0) { e.Data.Add("Kind", "ErrorLog"); } PublishTxt("ErrorLog", e); PublishErrorToDataBase(e); } private static void PublishErrorToDataBase(Exception e) { string stackTrace = e.StackTrace.Replace("\r\n", "||"); string message = e.Message.Replace("'", "\""); string source = e.Source.Replace(" ", "-"); string sql = " insert into 日志管理 values('" + DateTime.Now.ToString() + "','" + message + "','" + source + "','" + stackTrace + "','" + e.TargetSite + "')"; try { int rowCount = OledbHelper.sqlExecuteNonQuery(sql); } catch (Exception ex) { PublishTxt("ErrorLog", ex); } } private static void PublishTxt(string LogName,Exception e) { string m_LogName = Application.StartupPath + "/log.txt"; //m_LogName = m_LogName.Split('.')[0] + DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() // + DateTime.Now.Day.ToString() +"."+ m_LogName.Split('.')[1]; StringBuilder sb = new StringBuilder(); sb.Append("\r\n exception begin -----------------" + DateTime.Now + "---------------------\r\n\r\n\r\n"); sb.Append("\r\n e.Message:" + e.Message + "\r\n"); sb.Append("\r\n e.Source:" + e.Source + "\r\n"); sb.Append("\r\n e.TargetSite:" + e.TargetSite.ToString() + "\r\n"); sb.Append("\r\n e.StackTrace:" + e.StackTrace + "\r\n"); sb.Append("\r\n\r\n\r\n exception over ------------------------------------------------------------\r\n"); if (e.Data.Count > 0) { foreach (DictionaryEntry de in e.Data) { sb.Append("\r\n" + de.Key.ToString() + de.Value.ToString() + "\r\n"); } } PublishStream(m_LogName, sb); } public static void PublishAlarmMessage(string sensorType,string eqtId,string alarmValue,string collectTime) { string m_LogName = Application.StartupPath + "/alarmlog.txt"; //m_LogName = m_LogName.Split('.')[0] + DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() // + DateTime.Now.Day.ToString() +"."+ m_LogName.Split('.')[1]; StringBuilder sb = new StringBuilder(); sb.Append("\r\n alarm begin -----------------" + DateTime.Now + "---------------------\r\n\r\n\r\n"); sb.Append("\r\n 传感器类型:" + sensorType + "\r\n"); sb.Append("\r\n 设备id:" + eqtId + "\r\n"); sb.Append("\r\n 传感器测量值:" + alarmValue + "\r\n"); sb.Append("\r\n 测量值采集时间:" + collectTime + "\r\n"); sb.Append("\r\n\r\n\r\n alarm over ------------------------------------------------------------\r\n"); PublishStream(m_LogName, sb); } private static void PublishStream(string LogName, StringBuilder sb) { using (StreamWriter sw = new StreamWriter(LogName,true)) { sw.Write(sb); } using (StreamReader sr = new StreamReader(LogName)) { string strLog = sr.ReadToEnd(); if (strLog.Length > 1024 * 1024) { strLog = strLog.Substring(1024 * 512); } } } } }