规范并补充日志内容

This commit is contained in:
2026-01-16 14:30:42 +08:00
parent 4e0bb33ce2
commit fd6a82eb4e
28 changed files with 325 additions and 537 deletions

View File

@@ -1,4 +1,7 @@
namespace SHH.CameraSdk
using Ayay.SerilogLogs;
using Serilog;
namespace SHH.CameraSdk
{
#region --- (Frame Processor Cluster) ---
@@ -15,6 +18,9 @@
where TWorker : BaseWorker
{
#region --- ---
private static ILogger _sysLog = Log.ForContext("SourceContext", LogModules.Core);
/// <summary> Worker 线程池,负责具体的帧处理任务 </summary>
protected readonly List<TWorker> _workers = new List<TWorker>();
@@ -39,7 +45,10 @@
{
// 校验并行度参数,避免无效配置
if (workerCount < 1)
throw new ArgumentOutOfRangeException(nameof(workerCount), "Worker数量必须大于0");
{
_sysLog.Error("[Core] 帧处理集群初始化失败, 线程数必须 > 0.");
throw new ArgumentOutOfRangeException(nameof(workerCount), "帧处理集群初始化失败, 线程数必须 > 0.");
}
_configManager = configManager; // 先赋值配置管理器
_workerCount = workerCount;
@@ -50,7 +59,7 @@
_workers.Add(CreateWorker(i));
}
Console.WriteLine($"[{serviceName}] 服务已初始化 (并行度: {workerCount})");
_sysLog.Information($"[Core] 帧处理集群初始化成功, {serviceName} 并行数 {workerCount}. 注: 不能大于CPU核心数.");
}
#endregion
@@ -156,6 +165,8 @@
{
#region --- ---
private static ILogger _gRpcLog = Log.ForContext("SourceContext", LogModules.gRpc);
/// <summary> 线程内任务队列容量限制100防止内存溢出 </summary>
private readonly BlockingCollection<(long DeviceId, SmartFrame Frame, FrameDecision Decision)> _taskQueue = new BlockingCollection<(long, SmartFrame, FrameDecision)>(100);
@@ -195,7 +206,7 @@
{
// 背压处理:丢弃当前帧,释放引用计数
frame.Dispose();
Console.WriteLine($"[Worker] 任务队列已满,丢弃设备 {deviceId} 的帧 (引用计数已释放)");
_gRpcLog.Debug($"[gRpc] 任务队列已满,BaseWorker 丢弃设备 {deviceId} 的帧.");
}
}
@@ -228,7 +239,7 @@
}
catch (Exception ex)
{
Console.WriteLine($"[Worker] 帧处理异常: {ex.Message}");
_gRpcLog.Information($"[gRpc] 帧处理异常BaseWorker 异常消息: {ex.Message}.");
// 异常保底策略:即使处理失败,也透传帧到下一个环节,保证流水线不中断
NotifyFinished(taskItem.DeviceId, frame, taskItem.Decision);
@@ -239,11 +250,11 @@
catch (OperationCanceledException)
{
// 正常取消:线程退出,无需报错
Console.WriteLine("[Worker] 处理循环已正常终止");
_gRpcLog.Information($"[gRpc] BaseWorker 处理循环已正常终止.");
}
catch (Exception ex)
{
Console.WriteLine($"[Worker] 处理循环异常终止: {ex.Message}");
_gRpcLog.Error($"[gRpc] BaseWorker 处理循环异常终止.");
}
}