From 54ac8d2b5a1d6561f145d59060b1d8597dc3475c Mon Sep 17 00:00:00 2001 From: wenjy Date: Thu, 19 Mar 2026 10:52:01 +0800 Subject: [PATCH 1/2] =?UTF-8?q?add=20-=20=E6=B7=BB=E5=8A=A0Serilog?= =?UTF-8?q?=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SLn.Wcs.ElevatorSdk.csproj | 9 ++ Sln.Wcs.Model/Sln.Wcs.Model.csproj | 9 ++ Sln.Wcs.Serilog/SerilogExtensions.cs | 69 +++++++++ Sln.Wcs.Serilog/SerilogHelper.cs | 132 ++++++++++++++++++ Sln.Wcs.Serilog/Sln.Wcs.Serilog.csproj | 13 ++ Sln.Wcs.sln | 6 + Sln.Wcs/Program.cs | 11 +- Sln.Wcs/Sln.Wcs.csproj | 2 +- Sln.Wcs/appsettings.json | 2 +- 9 files changed, 246 insertions(+), 7 deletions(-) create mode 100644 SLn.Wcs.ElevatorSdk/SLn.Wcs.ElevatorSdk.csproj create mode 100644 Sln.Wcs.Model/Sln.Wcs.Model.csproj create mode 100644 Sln.Wcs.Serilog/SerilogExtensions.cs create mode 100644 Sln.Wcs.Serilog/SerilogHelper.cs create mode 100644 Sln.Wcs.Serilog/Sln.Wcs.Serilog.csproj diff --git a/SLn.Wcs.ElevatorSdk/SLn.Wcs.ElevatorSdk.csproj b/SLn.Wcs.ElevatorSdk/SLn.Wcs.ElevatorSdk.csproj new file mode 100644 index 0000000..fa71b7a --- /dev/null +++ b/SLn.Wcs.ElevatorSdk/SLn.Wcs.ElevatorSdk.csproj @@ -0,0 +1,9 @@ + + + + net8.0 + enable + enable + + + diff --git a/Sln.Wcs.Model/Sln.Wcs.Model.csproj b/Sln.Wcs.Model/Sln.Wcs.Model.csproj new file mode 100644 index 0000000..fa71b7a --- /dev/null +++ b/Sln.Wcs.Model/Sln.Wcs.Model.csproj @@ -0,0 +1,9 @@ + + + + net8.0 + enable + enable + + + diff --git a/Sln.Wcs.Serilog/SerilogExtensions.cs b/Sln.Wcs.Serilog/SerilogExtensions.cs new file mode 100644 index 0000000..f18e873 --- /dev/null +++ b/Sln.Wcs.Serilog/SerilogExtensions.cs @@ -0,0 +1,69 @@ +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.DependencyInjection; +using Serilog; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +#region << 版 本 注 释 >> +/*-------------------------------------------------------------------- +* 版权所有 (c) 2026 WenJY 保留所有权利。 +* CLR版本:4.0.30319.42000 +* 机器名称:T14-GEN3-7895 +* 命名空间:Sln.Wcs.Serilog +* 唯一标识:8c408f49-7da2-4484-905a-c9ca16565026 +* +* 创建者:WenJY +* 电子邮箱: +* 创建时间:2026-03-19 10:35:27 +* 版本:V1.0.0 +* 描述: +* +*-------------------------------------------------------------------- +* 修改人: +* 时间: +* 修改说明: +* +* 版本:V1.0.0 +*--------------------------------------------------------------------*/ +#endregion << 版 本 注 释 >> +namespace Sln.Wcs.Serilog +{ + public static class SerilogExtensions + { + public static void UseSerilogExtensions(this IServiceProvider service) + { + //启用Serilog中间件 + + + #region 通过配置文件读取日志存放位置 + var configuration = service.GetService(); + var logPath = Path.Combine(configuration["logPath"], "Logs"); + #endregion + + Log.Logger = new LoggerConfiguration().MinimumLevel.Information().WriteTo.Console() + .WriteTo.Logger(lc => lc + .Filter.ByIncludingOnly(logEvent => logEvent.Properties.ContainsKey("Module") && logEvent.Properties["Module"].ToString().Contains("Info")) + .WriteTo.File(Path.Combine($"{logPath}/Info/", "Info.log"), rollingInterval: RollingInterval.Day)) + .WriteTo.Logger(lc => lc + .Filter.ByIncludingOnly(logEvent => logEvent.Properties.ContainsKey("Module") && logEvent.Properties["Module"].ToString().Contains("Plc")) + .WriteTo.File(Path.Combine($"{logPath}/Plc/", "Plc.log"), rollingInterval: RollingInterval.Day)) + .WriteTo.Logger(lc => lc + .Filter.ByIncludingOnly(logEvent => logEvent.Properties.ContainsKey("Module") && logEvent.Properties["Module"].ToString().Contains("Agv")) + .WriteTo.File(Path.Combine($"{logPath}/Agv/", "Agv.log"), rollingInterval: RollingInterval.Day)) + .WriteTo.Logger(lc => lc + .Filter.ByIncludingOnly(logEvent => logEvent.Properties.ContainsKey("Module") && logEvent.Properties["Module"].ToString().Contains("Rfid")) + .WriteTo.File(Path.Combine($"{logPath}/Rfid/", "Rfid.log"), rollingInterval: RollingInterval.Day)) + .WriteTo.Logger(lc => lc + .Filter.ByIncludingOnly(logEvent => logEvent.Properties.ContainsKey("Module") && logEvent.Properties["Module"].ToString().Contains("Alarm")) + .WriteTo.File(Path.Combine($"{logPath}/Alarm/", "Alarm.log"), rollingInterval: RollingInterval.Day)) + .WriteTo.Logger(lc => lc + .Filter.ByIncludingOnly(logEvent => logEvent.Properties.ContainsKey("Module") && logEvent.Properties["Module"].ToString().Contains("Error")) + .WriteTo.File(Path.Combine($"{logPath}/Error/", "Error.log"), rollingInterval: RollingInterval.Day)) + .CreateLogger(); + + } + } +} diff --git a/Sln.Wcs.Serilog/SerilogHelper.cs b/Sln.Wcs.Serilog/SerilogHelper.cs new file mode 100644 index 0000000..ecb1299 --- /dev/null +++ b/Sln.Wcs.Serilog/SerilogHelper.cs @@ -0,0 +1,132 @@ +using Serilog; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +#region << 版 本 注 释 >> +/*-------------------------------------------------------------------- +* 版权所有 (c) 2026 WenJY 保留所有权利。 +* CLR版本:4.0.30319.42000 +* 机器名称:T14-GEN3-7895 +* 命名空间:Sln.Wcs.Serilog +* 唯一标识:53133fd1-c671-497c-9484-f1d8794cf283 +* +* 创建者:WenJY +* 电子邮箱: +* 创建时间:2026-03-19 10:43:05 +* 版本:V1.0.0 +* 描述: +* +*-------------------------------------------------------------------- +* 修改人: +* 时间: +* 修改说明: +* +* 版本:V1.0.0 +*--------------------------------------------------------------------*/ +#endregion << 版 本 注 释 >> +namespace Sln.Wcs.Serilog +{ + public class SerilogHelper + { + private readonly ILogger? Info_logger = Log.ForContext("Module", "Info"); + private readonly ILogger? Plc_logger = Log.ForContext("Module", "Plc"); + private readonly ILogger? Agv_logger = Log.ForContext("Module", "Agv"); + private readonly ILogger? Rfid_logger = Log.ForContext("Module", "Rfid"); + private readonly ILogger? Error_logger = Log.ForContext("Module", "Error"); + private readonly ILogger? Alarm_logger = Log.ForContext("Module", "Alarm"); + + /// + /// Info日志 + /// + /// + public void Info(string msg) + { + if (Info_logger != null) + { + this.Info_logger.Information(msg); + } + } + + /// + /// Plc日志 + /// + /// + public void Plc(string msg) + { + if (Plc_logger != null) + { + this.Plc_logger.Information(msg); + } + } + + /// + /// Agv日志 + /// + /// + public void Agv(string msg) + { + if (Agv_logger != null) + { + this.Agv_logger.Information(msg); + } + } + + /// + /// Rfid日志 + /// + /// + public void Rfid(string msg) + { + if (Rfid_logger != null) + { + this.Rfid_logger.Information(msg); + } + } + + /// + /// 设备告警日志 + /// + /// + public void Alarm(string msg) + { + if (Alarm_logger != null) + { + this.Alarm_logger.Information(msg); + } + } + + /// + /// Error日志 + /// + /// + /// + public void Error(string msg, Exception ex = null) + { + if (!string.IsNullOrEmpty(msg) && ex == null) + { + this.Error_logger.Information("【附加信息】 : {0}
", new object[] { msg }); + } + else if (!string.IsNullOrEmpty(msg) && ex != null) + { + string errorMsg = BeautyErrorMsg(ex); + this.Error_logger.Information("【附加信息】 : {0}
{1}", new object[] { msg, errorMsg }); + } + else if (string.IsNullOrEmpty(msg) && ex != null) + { + string errorMsg = BeautyErrorMsg(ex); + this.Error_logger.Information(errorMsg); + } + } + + private string BeautyErrorMsg(Exception ex) + { + string errorMsg = string.Format("【异常类型】:{0}
【异常信息】:{1}
【堆栈调用】:{2}", new object[] { ex.GetType().Name, ex.Message, ex.StackTrace }); + errorMsg = errorMsg.Replace("\r\n", "
"); + errorMsg = errorMsg.Replace("位置", "位置"); + return errorMsg; + } + } +} diff --git a/Sln.Wcs.Serilog/Sln.Wcs.Serilog.csproj b/Sln.Wcs.Serilog/Sln.Wcs.Serilog.csproj new file mode 100644 index 0000000..154782e --- /dev/null +++ b/Sln.Wcs.Serilog/Sln.Wcs.Serilog.csproj @@ -0,0 +1,13 @@ + + + + net8.0 + enable + enable + + + + + + + diff --git a/Sln.Wcs.sln b/Sln.Wcs.sln index d6ca476..8ee4b4c 100644 --- a/Sln.Wcs.sln +++ b/Sln.Wcs.sln @@ -10,6 +10,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Sln.Wcs.HikRoBotSdk", "Sln. EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Sln.Wcs.HikRoBotApi", "Sln.Wcs.HikRoBotApi\Sln.Wcs.HikRoBotApi.csproj", "{9E3193CA-590C-4965-B2EF-02C2AE252095}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Sln.Wcs.Serilog", "Sln.Wcs.Serilog\Sln.Wcs.Serilog.csproj", "{DD340736-51E7-47D5-AF1E-24A79F8B4675}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -32,6 +34,10 @@ Global {9E3193CA-590C-4965-B2EF-02C2AE252095}.Debug|Any CPU.Build.0 = Debug|Any CPU {9E3193CA-590C-4965-B2EF-02C2AE252095}.Release|Any CPU.ActiveCfg = Release|Any CPU {9E3193CA-590C-4965-B2EF-02C2AE252095}.Release|Any CPU.Build.0 = Release|Any CPU + {DD340736-51E7-47D5-AF1E-24A79F8B4675}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DD340736-51E7-47D5-AF1E-24A79F8B4675}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DD340736-51E7-47D5-AF1E-24A79F8B4675}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DD340736-51E7-47D5-AF1E-24A79F8B4675}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/Sln.Wcs/Program.cs b/Sln.Wcs/Program.cs index e64d2a7..d276f28 100644 --- a/Sln.Wcs/Program.cs +++ b/Sln.Wcs/Program.cs @@ -3,6 +3,7 @@ using Com.Ctrip.Framework.Apollo; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Sln.Wcs.HikRoBotSdk; +using Sln.Wcs.Serilog; namespace Sln.Wcs { @@ -17,11 +18,10 @@ namespace Sln.Wcs var serviceProvider = services.BuildServiceProvider(); - var sdk = serviceProvider.GetService(); - - //var info = sdk.GenAgvSchedulingTask(null); - - Console.WriteLine("\n程序执行完成!"); + serviceProvider.UseSerilogExtensions(); + var config = serviceProvider.GetService(); + var log = serviceProvider.GetService(); + log.Info($"系统启动成功,日志存放位置:{config["logPath"]}"); } @@ -64,6 +64,7 @@ namespace Sln.Wcs .AsSelf() .WithTransientLifetime()); + services.AddSingleton(typeof(SerilogHelper)); } } diff --git a/Sln.Wcs/Sln.Wcs.csproj b/Sln.Wcs/Sln.Wcs.csproj index f223505..0a8fea9 100644 --- a/Sln.Wcs/Sln.Wcs.csproj +++ b/Sln.Wcs/Sln.Wcs.csproj @@ -22,13 +22,13 @@ - + diff --git a/Sln.Wcs/appsettings.json b/Sln.Wcs/appsettings.json index 9827cf3..d486625 100644 --- a/Sln.Wcs/appsettings.json +++ b/Sln.Wcs/appsettings.json @@ -8,7 +8,7 @@ "**/platforms" ], "apollo": { - "AppId": "SampleApp", + "AppId": "SlnWcs", "Env": "DEV", "MetaServer": "http://119.45.202.115:4320", "ConfigServer": [ From f6c9dad08a1eb7cb2ba8b8f67804cbab34a9251e Mon Sep 17 00:00:00 2001 From: wenjy Date: Thu, 19 Mar 2026 10:55:12 +0800 Subject: [PATCH 2/2] =?UTF-8?q?change=20-=20=E6=B8=85=E7=90=86=E4=BB=A3?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- SLn.Wcs.ElevatorSdk/SLn.Wcs.ElevatorSdk.csproj | 9 --------- 1 file changed, 9 deletions(-) delete mode 100644 SLn.Wcs.ElevatorSdk/SLn.Wcs.ElevatorSdk.csproj diff --git a/SLn.Wcs.ElevatorSdk/SLn.Wcs.ElevatorSdk.csproj b/SLn.Wcs.ElevatorSdk/SLn.Wcs.ElevatorSdk.csproj deleted file mode 100644 index fa71b7a..0000000 --- a/SLn.Wcs.ElevatorSdk/SLn.Wcs.ElevatorSdk.csproj +++ /dev/null @@ -1,9 +0,0 @@ - - - - net8.0 - enable - enable - - -