#0044 使用基础库层面的日志功能
This commit is contained in:
@@ -8,6 +8,7 @@ using System.Windows.Media.Imaging;
|
||||
using Microsoft.Win32;
|
||||
using Prism.Commands;
|
||||
using Prism.Mvvm;
|
||||
using XP.Common.Logging.Interfaces;
|
||||
using XplorePlane.Models;
|
||||
using XplorePlane.Services;
|
||||
|
||||
@@ -21,6 +22,7 @@ namespace XplorePlane.ViewModels
|
||||
private readonly IImageProcessingService _imageProcessingService;
|
||||
private readonly IPipelineExecutionService _executionService;
|
||||
private readonly IPipelinePersistenceService _persistenceService;
|
||||
private readonly ILoggerService _logger;
|
||||
|
||||
private PipelineNodeViewModel _selectedNode;
|
||||
private BitmapSource _sourceImage;
|
||||
@@ -37,11 +39,13 @@ namespace XplorePlane.ViewModels
|
||||
public PipelineEditorViewModel(
|
||||
IImageProcessingService imageProcessingService,
|
||||
IPipelineExecutionService executionService,
|
||||
IPipelinePersistenceService persistenceService)
|
||||
IPipelinePersistenceService persistenceService,
|
||||
ILoggerService logger)
|
||||
{
|
||||
_imageProcessingService = imageProcessingService ?? throw new ArgumentNullException(nameof(imageProcessingService));
|
||||
_executionService = executionService ?? throw new ArgumentNullException(nameof(executionService));
|
||||
_persistenceService = persistenceService ?? throw new ArgumentNullException(nameof(persistenceService));
|
||||
_logger = logger?.ForModule<PipelineEditorViewModel>() ?? throw new ArgumentNullException(nameof(logger));
|
||||
|
||||
PipelineNodes = new ObservableCollection<PipelineNodeViewModel>();
|
||||
AvailableDevices = new ObservableCollection<string>();
|
||||
@@ -153,30 +157,30 @@ namespace XplorePlane.ViewModels
|
||||
|
||||
private void AddOperator(string operatorKey)
|
||||
{
|
||||
Serilog.Log.Debug("AddOperator 被调用,operatorKey={OperatorKey}", operatorKey);
|
||||
_logger.Debug("AddOperator 被调用,operatorKey={OperatorKey}", operatorKey);
|
||||
|
||||
if (string.IsNullOrWhiteSpace(operatorKey))
|
||||
{
|
||||
StatusMessage = "算子键不能为空";
|
||||
Serilog.Log.Warning("AddOperator 失败:operatorKey 为空");
|
||||
_logger.Warn("AddOperator 失败:operatorKey 为空");
|
||||
return;
|
||||
}
|
||||
|
||||
var available = _imageProcessingService.GetAvailableProcessors();
|
||||
Serilog.Log.Debug("可用算子数量:{Count},包含 {Key}:{Contains}",
|
||||
_logger.Debug("可用算子数量:{Count},包含 {Key}:{Contains}",
|
||||
available.Count(), operatorKey, available.Contains(operatorKey));
|
||||
|
||||
if (!available.Contains(operatorKey))
|
||||
{
|
||||
StatusMessage = $"算子 '{operatorKey}' 未注册";
|
||||
Serilog.Log.Warning("AddOperator 失败:算子 {Key} 未注册", operatorKey);
|
||||
_logger.Warn("AddOperator 失败:算子 {Key} 未注册", operatorKey);
|
||||
return;
|
||||
}
|
||||
|
||||
if (PipelineNodes.Count >= MaxPipelineLength)
|
||||
{
|
||||
StatusMessage = $"流水线节点数已达上限({MaxPipelineLength})";
|
||||
Serilog.Log.Warning("AddOperator 失败:节点数已达上限 {Max}", MaxPipelineLength);
|
||||
_logger.Warn("AddOperator 失败:节点数已达上限 {Max}", MaxPipelineLength);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -187,7 +191,7 @@ namespace XplorePlane.ViewModels
|
||||
};
|
||||
LoadNodeParameters(node);
|
||||
PipelineNodes.Add(node);
|
||||
Serilog.Log.Information("节点已添加到 PipelineNodes:{Key} ({DisplayName}),当前节点数={Count}",
|
||||
_logger.Info("节点已添加到 PipelineNodes:{Key} ({DisplayName}),当前节点数={Count}",
|
||||
operatorKey, displayName, PipelineNodes.Count);
|
||||
StatusMessage = $"已添加算子:{displayName}";
|
||||
TriggerDebouncedExecution();
|
||||
@@ -457,32 +461,32 @@ namespace XplorePlane.ViewModels
|
||||
PipelineNodes.Add(node);
|
||||
}
|
||||
|
||||
Serilog.Log.Information("流水线已加载:{Name},节点数={Count}", model.Name, PipelineNodes.Count);
|
||||
_logger.Info("流水线已加载:{Name},节点数={Count}", model.Name, PipelineNodes.Count);
|
||||
StatusMessage = $"已加载流水线:{model.Name}({PipelineNodes.Count} 个节点)";
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Serilog.Log.Warning("加载流水线失败:{Error}", ex.Message);
|
||||
_logger.Warn("加载流水线失败:{Error}", ex.Message);
|
||||
StatusMessage = $"加载失败:{ex.Message}";
|
||||
}
|
||||
}
|
||||
|
||||
private void OpenToolbox() //打开图像工具箱
|
||||
{
|
||||
Serilog.Log.Information("OpenToolbox 被调用");
|
||||
_logger.Info("OpenToolbox 被调用");
|
||||
try
|
||||
{
|
||||
var window = new Views.OperatorToolboxWindow
|
||||
{
|
||||
Owner = System.Windows.Application.Current.MainWindow
|
||||
};
|
||||
Serilog.Log.Information("OperatorToolboxWindow 已创建,准备 Show()");
|
||||
_logger.Info("OperatorToolboxWindow 已创建,准备 Show()");
|
||||
window.Show();
|
||||
Serilog.Log.Information("OperatorToolboxWindow.Show() 完成");
|
||||
_logger.Info("OperatorToolboxWindow.Show() 完成");
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Serilog.Log.Error(ex, "OpenToolbox 打开窗口失败");
|
||||
_logger.Error(ex, "OpenToolbox 打开窗口失败");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user