using System; using System.Collections.Generic; using System.Configuration; using System.Data; using System.IO; using System.Linq; using System.Threading; using System.Threading.Tasks; using System.Windows; namespace DyeingComputer { /// /// App.xaml 的交互逻辑 /// public partial class App : Application { public App() { this.Startup += new StartupEventHandler(App_Startup); this.DispatcherUnhandledException += new System.Windows.Threading.DispatcherUnhandledExceptionEventHandler(App_DispatcherUnhandledException); //DyeingComputer.Properties.Resources.Culture = new System.Globalization.CultureInfo("en-US");//设定语言 } System.Threading.Mutex mutex; void App_Startup(object sender, StartupEventArgs e) //程序只允许启动一次 { bool ret; mutex = new System.Threading.Mutex(true, "ElectronicNeedleTherapySystem", out ret); if (!ret) { MessageBox.Show("The program has been launched"); Environment.Exit(0); } } protected override void OnStartup(StartupEventArgs e) //跟踪报错信息 { base.OnStartup(e); //UI线程的异常捕捉 this.DispatcherUnhandledException += App_DispatcherUnhandledException; } private void App_DispatcherUnhandledException(object sender, System.Windows.Threading.DispatcherUnhandledExceptionEventArgs e) { e.Handled = true; if (e.Exception.InnerException == null) { MessageBox.Show("发生了一个无法处理的错误!请联系SUNLIGHT处理!" + "(1)错误" + Environment.NewLine + "(2)错误源:" + e.Exception.Source + Environment.NewLine // + (3)详细信息:" + e.Exception.Message + Environment.NewLine // + "(4)报错区域:" + e.Exception.StackTrace ); } else { MessageBox.Show("发生了一个无法处理的错误!请联系SUNLIGHT处理!" + "(1)错误" + Environment.NewLine // + "(2)错误源:" + e.Exception.InnerException.Source + Environment.NewLine + "(3)错误信息:" + e.Exception.Message + Environment.NewLine // + "(4)详细信息:" + e.Exception.InnerException.Message + Environment.NewLine // + "(5)报错区域:" + e.Exception.InnerException.StackTrace ); } string Log_time = DateTime.Now.ToString("yyyy-MM-dd"); string logpath = System.Environment.CurrentDirectory + "\\ERR";//日志文件目录 //string logPathtxt = "" + System.Environment.CurrentDirectory + "\\Log\\"+ Log_time + "Log.txt";//日志文件 // System.IO.DirectoryInfo log = new System.IO.DirectoryInfo();//生成日志文件目录 string log_path = logpath + "\\ERR" + Log_time + ".txt"; string Log_timehms = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); if (Directory.Exists(logpath))//检查日志路径 { if (!File.Exists(log_path))//检查文件并写入 { FileStream fs = new FileStream(log_path, FileMode.CreateNew, FileAccess.Write);//创建文件 StreamWriter wr = new StreamWriter(fs);//创建文件 wr.Close(); FileStream fil = new FileStream(log_path, FileMode.Append, FileAccess.Write);//创建写入文件 StreamWriter wfil = new StreamWriter(fil);//创建文件 wfil.WriteLine("[" + Log_timehms + "];[Error] ||" + Environment.NewLine.ToString()); wfil.WriteLine("[" + Log_timehms + "];[Error source] ||" + e.Exception.Source.ToString() + Environment.NewLine.ToString()); wfil.WriteLine("[" + Log_timehms + "];[Error message] ||" + e.Exception.Message.ToString() + Environment.NewLine.ToString()); wfil.WriteLine("[" + Log_timehms + "];[Error area] ||" + e.Exception.StackTrace.ToString()); wfil.Close(); } else { FileStream fs = new FileStream(log_path, FileMode.Append, FileAccess.Write);//创建写入文件 StreamWriter wr = new StreamWriter(fs);//创建文件 wr.WriteLine("[" + Log_timehms + "];[Error] ||" + Environment.NewLine.ToString()); wr.WriteLine("[" + Log_timehms + "];[Error source] ||" + e.Exception.Source.ToString() + Environment.NewLine.ToString()); wr.WriteLine("[" + Log_timehms + "];[Error message] ||" + e.Exception.Message.ToString() + Environment.NewLine.ToString()); wr.WriteLine("[" + Log_timehms + "];[Error area] ||" + e.Exception.StackTrace.ToString()); wr.Close(); } } else { DirectoryInfo directoryInfo = new DirectoryInfo(logpath); directoryInfo.Create(); } } /// /// 启动初始页面 /// private void Application_Startup(object sender, StartupEventArgs e) { Application.Current.StartupUri = new Uri("MainWindow.xaml", UriKind.Relative);//和MainWindwo同一目录 } } }