59 lines
1.7 KiB
C#
59 lines
1.7 KiB
C#
|
|
using System;
|
|||
|
|
using System.Collections.Generic;
|
|||
|
|
using System.Diagnostics;
|
|||
|
|
using System.Linq;
|
|||
|
|
using System.Text;
|
|||
|
|
using System.Threading.Tasks;
|
|||
|
|
using NLog;
|
|||
|
|
using Prism.Events;
|
|||
|
|
using Prism.Regions;
|
|||
|
|
using RIZO_Application.Core;
|
|||
|
|
using RIZO_Application.Core.Mvvm;
|
|||
|
|
|
|||
|
|
namespace RIZO_Application.Modules.Base.ViewModels
|
|||
|
|
{
|
|||
|
|
public class SystemLogViewModel : RegionViewModelBase
|
|||
|
|
{
|
|||
|
|
private readonly IEventAggregator _eventAggregator;
|
|||
|
|
private SubscriptionToken _token;
|
|||
|
|
private string _logMessage = "";
|
|||
|
|
private Logger _logger = LogManager.GetCurrentClassLogger();
|
|||
|
|
public string LogMessage
|
|||
|
|
{
|
|||
|
|
get { return _logMessage; }
|
|||
|
|
set { SetProperty(ref _logMessage, value); }
|
|||
|
|
}
|
|||
|
|
public SystemLogViewModel(
|
|||
|
|
IRegionManager regionManager,
|
|||
|
|
IEventAggregator eventAggregator)
|
|||
|
|
: base(regionManager)
|
|||
|
|
{
|
|||
|
|
OnLogReceived("初始化日志系统");
|
|||
|
|
_eventAggregator = eventAggregator;
|
|||
|
|
// 订阅事件,使用UI线程处理,保持强引用
|
|||
|
|
_token = _eventAggregator.GetEvent<SystemLogEvent>().Subscribe(OnLogReceived, ThreadOption.UIThread, true);
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
private void OnLogReceived(string message)
|
|||
|
|
{
|
|||
|
|
Debug.WriteLine(message);
|
|||
|
|
LogMessage += $"\n{DateTime.Now}: {message}";
|
|||
|
|
_logger.Info($"\n{DateTime.Now}: {message}");
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public void Destroy()
|
|||
|
|
{
|
|||
|
|
_token?.Dispose();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public void AddTestLogMessage()
|
|||
|
|
{
|
|||
|
|
}
|
|||
|
|
public override void OnNavigatedTo(NavigationContext navigationContext)
|
|||
|
|
{
|
|||
|
|
//do something
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|