diff --git a/App.xaml.cs b/App.xaml.cs index 7c4ca37..c74076f 100644 --- a/App.xaml.cs +++ b/App.xaml.cs @@ -44,13 +44,12 @@ namespace formula_manage this.DispatcherUnhandledException += App_DispatcherUnhandledException; } - string Log_time = DateTime.Now.ToString("yyyy-MM-dd"); - string logpath = System.Environment.CurrentDirectory + "\\Log";//日志文件目录 + string Log_time = DateTime.Now.ToString("yyyy-MM-dd"); + string logpath = System.Environment.CurrentDirectory + "\\Log\\ERR";//日志文件目录 //string logPathtxt = "" + System.Environment.CurrentDirectory + "\\Log\\"+ Log_time + "Log.txt";//日志文件 private void App_DispatcherUnhandledException(object sender, System.Windows.Threading.DispatcherUnhandledExceptionEventArgs e) { - e.Handled = true; if (e.Exception.InnerException == null) { @@ -74,24 +73,25 @@ namespace formula_manage System.IO.DirectoryInfo log = new System.IO.DirectoryInfo(@logpath);//生成日志文件目录 string log_path = logpath +"\\ERR" +Log_time + ".txt"; + string Log_timehms = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); if (!File.Exists(log_path))//检查日志文件并写入启动日志 { FileStream fs = new FileStream(log_path, FileMode.CreateNew, FileAccess.Write);//创建写入文件 StreamWriter wr = new StreamWriter(fs);//创建文件 - wr.WriteLine("[" + Log_time + "];[Error source] ||" + e.Exception.Source.ToString() + Environment.NewLine.ToString()); - wr.WriteLine("[" + Log_time + "];[Error message] ||" + e.Exception.Message.ToString() + Environment.NewLine.ToString()); - wr.WriteLine("[" + Log_time + "];[Detailed] ||" + e.Exception.Message.ToString() + Environment.NewLine.ToString()); - wr.WriteLine("[" + Log_time + "];[Error area] ||" + e.Exception.StackTrace.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 + "];[Detailed] ||" + e.Exception.Message.ToString() + Environment.NewLine.ToString()); + wr.WriteLine("[" + Log_timehms + "];[Error area] ||" + e.Exception.StackTrace.ToString()); wr.Close(); } else { FileStream fs = new FileStream(log_path, FileMode.Append, FileAccess.Write);//创建写入文件 StreamWriter wr = new StreamWriter(fs);//创建文件 - wr.WriteLine("[" + Log_time + "];[Error source] ||" + e.Exception.Source.ToString() + Environment.NewLine.ToString()); - wr.WriteLine("[" + Log_time + "];[Error message] ||" + e.Exception.Message.ToString() + Environment.NewLine.ToString()); - wr.WriteLine("[" + Log_time + "];[Detailed] ||" + e.Exception.Message.ToString() + Environment.NewLine.ToString()); - wr.WriteLine("[" + Log_time + "];[Error area] ||" + e.Exception.StackTrace.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 + "];[Detailed] ||" + e.Exception.Message.ToString() + Environment.NewLine.ToString()); + wr.WriteLine("[" + Log_timehms + "];[Error area] ||" + e.Exception.StackTrace.ToString()); wr.Close(); } } diff --git a/EX/Exchange.xaml b/EX/Exchange.xaml index e2d6a7a..5c49016 100644 --- a/EX/Exchange.xaml +++ b/EX/Exchange.xaml @@ -7,23 +7,27 @@ mc:Ignorable="d" Title="Exchange" Height="720" Width="1280" MinHeight="720" MinWidth="1280" Background="#FFE0E0E0"> - + - - + + + + - + - + + + + diff --git a/EX/Exchange.xaml.cs b/EX/Exchange.xaml.cs index 893ec70..6155bac 100644 --- a/EX/Exchange.xaml.cs +++ b/EX/Exchange.xaml.cs @@ -4,6 +4,7 @@ using System.Data; using System.IO; using System.Linq; using System.Text; +using System.Threading; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; @@ -13,6 +14,7 @@ using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Shapes; +using System.Windows.Threading; namespace formula_manage.EX { @@ -22,39 +24,75 @@ namespace formula_manage.EX public partial class Exchange : Window { string Log_time = DateTime.Now.ToString("yyyy-MM-dd"); - DataTable logdataTable = new DataTable(); //建立log缓存 + + DataTable logdataTable = new DataTable(); //建立RRODUCT缓存 public Exchange() { + WindowStartupLocation = WindowStartupLocation.CenterScreen; InitializeComponent(); - + logdataTable.Columns.Add("Name", typeof(string)); logdataTable.Columns.Add("Length", typeof(int)); + logdataTable.Columns.Add("CreationTimeUtc", typeof(string)); + logdataTable.Columns.Add("LastWriteTimeUtc", typeof(string)); LOG_file(); } private void LOG_file()//建立列表 { DirectoryInfo loginfo = new DirectoryInfo(System.Environment.CurrentDirectory + "\\Exchange"); //new文件夹 - DataRow FileRow = logdataTable.NewRow(); + foreach (var item in loginfo.GetFiles()) { - // DataRow FileRow = logdataTable.NewRow(); + DataRow FileRow = logdataTable.NewRow(); FileRow["Name"] = item.Name; FileRow["Length"] = item.Length/1024; + FileRow["CreationTimeUtc"] = item.CreationTimeUtc; + FileRow["LastWriteTimeUtc"] = item.LastWriteTimeUtc; logdataTable.Rows.Add(FileRow); } gridLog.ItemsSource = logdataTable.DefaultView; - // FileInfo[] logFile = loginfo.GetFiles("*.log");//生成文件夹中的文件名合集 - //gridLog.ItemsSource = logFile;//加载合集 - // DataRow row = logdataTable.NewRow(); //ID列 - //logdataTable. = - // logFile.fill() - // //gridLog.DataContext = "Name"; // 显示文件名 - - // gridLog.ItemsSource = logFile;//加载合集 + } + + private void DataGrid_gridLogClick(object sender, MouseButtonEventArgs e)//数据表双击事件 + { + int rownum = gridLog.SelectedIndex;//获取鼠标选中行并定义变量 + logR.Visibility = Visibility.Visible; //开启页面遮罩 + + if (rownum != -1)//判断鼠标定位是否有效 + { + /*定位选中行及指定列单元格文本信息*/ + LOGDATA_file((gridLog.Columns[0].GetCellContent(gridLog.Items[rownum]) as TextBlock).Text.TrimEnd());// + } + + logR.Visibility = Visibility.Hidden; + } + + private void LOGDATA_file(string dat) //读取文件显示到前端 + { + Logtext.Document = new FlowDocument(); + string filePath = System.Environment.CurrentDirectory + "\\Exchange\\"; + try + { + // 使用StreamReader读取文件 + using (StreamReader reader = new StreamReader(filePath + dat)) + { + // 读取文件直到文件的末尾 + while (!reader.EndOfStream) + { + // 添加文件的每一行到RichTextBox + Logtext.AppendText(reader.ReadLine() + "\r\n"); + } + } + } + catch (Exception ex) + { + // 处理可能发生的任何异常 + MessageBox.Show("Error reading file: " + ex.Message); + } } } }