| | |
| | | using HMI.Base; |
| | | using HMI.Core.Util; |
| | | using HMI.UI.Util; |
| | | using log4net.Core; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Data; |
| | | using System.IO; |
| | | using System.Linq; |
| | | using System.Threading.Tasks; |
| | | using System.Timers; |
| | | using System.Windows; |
| | | using System.Windows.Controls; |
| | | using static System.Net.Mime.MediaTypeNames; |
| | | |
| | | namespace HMI.LogViewer |
| | | { |
| | |
| | | |
| | | private Timer autoRfhTimer; |
| | | |
| | | private int currentPage = 1; |
| | | public int CurrentPage |
| | | { |
| | | get => currentPage; |
| | | set |
| | | { |
| | | Set(ref currentPage, value); |
| | | } |
| | | } |
| | | |
| | | private int maxPage = 0; |
| | | public int MaxPage |
| | | { |
| | | get => maxPage; |
| | | set |
| | | { |
| | | Set(ref currentPage, value); |
| | | } |
| | | } |
| | | |
| | | |
| | | public LogViewer() |
| | | { |
| | |
| | | autoRfhTimer = new Timer |
| | | { |
| | | Enabled = false, |
| | | Interval = 1000, |
| | | Interval = 1500, |
| | | AutoReset = false |
| | | }; |
| | | autoRfhTimer.Elapsed += AutoRfhTimer_Elapsed; |
| | |
| | | QueryReset(); |
| | | break; |
| | | case "exportBtn": |
| | | DoExport(); |
| | | break; |
| | | default: |
| | | break; |
| | | } |
| | | } |
| | | |
| | | private void DoExport() { |
| | | |
| | | } |
| | | |
| | | private void QueryLog() |
| | |
| | | endTimeInput.SelectedDateTime }); |
| | | foreach (string file in files) |
| | | { |
| | | SqliteHelper sql = new SqliteHelper(file); |
| | | dt.Merge(sql.GetDataTable(str)); |
| | | sql.Close(); |
| | | using (SqliteHelper sql = new SqliteHelper(file)) |
| | | { |
| | | dt.Merge(sql.GetDataTable(str)); |
| | | } |
| | | } |
| | | dt.DefaultView.Sort = "time Desc"; |
| | | if (dt.Rows.Count > 0) |
| | | { |
| | | dt.DefaultView.Sort = "time Desc"; |
| | | } |
| | | table.ItemsSource = dt.DefaultView; |
| | | } |
| | | |
| | |
| | | var lastWriteTime = File.GetLastWriteTime(file); |
| | | bool flag = true; |
| | | if (range[0] != null) flag &= lastWriteTime >= range[0]; |
| | | if (range[1] != null) flag &= lastWriteTime <= range[1]; |
| | | //if (range[1] != null) flag &= lastWriteTime <= range[1]; |
| | | return flag; |
| | | }).ToArray(); |
| | | }).OrderByDescending(f => f).ToArray(); |
| | | |
| | | return oldFiles; |
| | | } |
| | |
| | | /// </summary> |
| | | private void Refresh100items() |
| | | { |
| | | try |
| | | autoRfhTimer.Enabled = false; |
| | | Task.Run(() => |
| | | { |
| | | autoRfhTimer.Enabled = false; |
| | | string todayLogFile = Path.Combine(PathHelper.LogViewerDir, $"log_{DateTime.Today:yyyy-MM-dd}.db"); |
| | | if (!File.Exists(todayLogFile)) return; |
| | | string str = "select level,time,source,text from log order by time desc limit 100"; |
| | | SqliteHelper sql = new SqliteHelper(todayLogFile); |
| | | var dt = sql.GetDataTable(str); |
| | | this.Dispatcher.BeginInvoke((Action)delegate () |
| | | try |
| | | { |
| | | table.ItemsSource = dt.DefaultView; |
| | | }); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | log.Error("Log Auto Refresh Failed.", ex); |
| | | this.Error($"自动刷新失败!{ex.Message}"); |
| | | } |
| | | finally |
| | | { |
| | | autoRfhTimer.Enabled = AutoRfh; |
| | | } |
| | | string todayLogFile = Path.Combine(PathHelper.LogViewerDir, $"log_{DateTime.Today:yyyy-MM-dd}.db"); |
| | | if (!File.Exists(todayLogFile)) return; |
| | | string str = "select level,time,source,text from log order by time desc limit 100"; |
| | | using (SqliteHelper sql = new SqliteHelper(todayLogFile)) |
| | | { |
| | | var dt = sql.GetDataTable(str); |
| | | this.Dispatcher.BeginInvoke((Action)delegate () |
| | | { |
| | | table.ItemsSource = dt.DefaultView; |
| | | }); |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | log.Error("Log Auto Refresh Failed.", ex); |
| | | this.Error($"自动刷新失败!{ex.Message}"); |
| | | } |
| | | finally |
| | | { |
| | | this.Dispatcher.BeginInvoke((Action)delegate () |
| | | { |
| | | autoRfhTimer.Enabled = AutoRfh; |
| | | }); |
| | | } |
| | | }); |
| | | } |
| | | } |
| | | } |