alielie
2025-08-25 c4a3f8db90530a727ffab77c3bb5bb7d782792bf
HMI.LogViewer/LogViewer.xaml.cs
@@ -36,6 +36,13 @@
        public LogViewer()
        {
            DataContext = this;
            autoRfhTimer = new Timer
            {
                Enabled = false,
                Interval = 1000,
                AutoReset = false
            };
            autoRfhTimer.Elapsed += AutoRfhTimer_Elapsed;
            InitializeComponent();
        }
@@ -68,12 +75,6 @@
        private void UserControl_Loaded(object sender, RoutedEventArgs e)
        {
            autoRfhTimer = new Timer
            {
                Enabled = false,
                Interval = 1000
            };
            autoRfhTimer.Elapsed += AutoRfhTimer_Elapsed;
            Loaded -= UserControl_Loaded;
        }
@@ -222,22 +223,28 @@
        /// </summary>
        private void Refresh100items()
        {
            //try
            //{
            //    if (!File.Exists(todayLogFile)) return;
            //    string str = "select type,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 ()
            //    {
            //        table.ItemsSource = dt.DefaultView;
            //    });
            //}
            //catch (Exception ex)
            //{
            //    log.Error("Log Auto Refresh Failed.", ex);
            //    this.Error($"自动刷新失败!{ex.Message}");
            //}
            try
            {
                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 ()
                {
                    table.ItemsSource = dt.DefaultView;
                });
            }
            catch (Exception ex)
            {
                log.Error("Log Auto Refresh Failed.", ex);
                this.Error($"自动刷新失败!{ex.Message}");
            }
            finally
            {
                autoRfhTimer.Enabled = AutoRfh;
            }
        }
    }
}