Procházet zdrojové kódy

优化日志使用方案1

林豪 左 před 2 roky
rodič
revize
4dca4a6aaf

+ 69 - 0
WCS.WorkEngineering/Worlds/Logs/KnownException.cs

@@ -0,0 +1,69 @@
+namespace WCS.WorkEngineering.Worlds.Logs
+{
+    /// <summary>
+    ///  已知异常
+    /// </summary>
+    public class KnownException : Exception
+    {
+        /// <summary>
+        ///  日志级别
+        /// </summary>
+        public LogLevelEnum Level { get; set; }
+
+        /// <summary>
+        ///  日志上传类型
+        /// </summary>
+        public LogUpLoadEnum logUpLoad { get; set; }
+
+        /// <summary>
+        ///  构造函数
+        ///  自定义日志级别
+        ///  上抛类型,按日志级别默认处理 Low:NotUpLoad Mid:UpLoadWMS High:UpLoadWMS
+        /// </summary>
+        /// <param name="message">消息</param>
+        /// <param name="level">日志级别</param>
+        public KnownException(string message, LogLevelEnum level) : base(message)
+        {
+            Level = level;
+            switch (level)
+            {
+                case LogLevelEnum.Low:
+                    logUpLoad = LogUpLoadEnum.NotUpLoad;
+                    break;
+
+                case LogLevelEnum.Mid:
+                    logUpLoad = LogUpLoadEnum.UpLoadWMS;
+                    break;
+
+                case LogLevelEnum.High:
+                    logUpLoad = LogUpLoadEnum.UpLoadWMS;
+                    break;
+
+                default:
+                    break;
+            }
+        }
+
+        /// <summary>
+        ///  构造函数
+        ///  自定义日志级别与上抛类型
+        /// </summary>
+        /// <param name="message">消息</param>
+        /// <param name="level">日志级别</param>
+        /// <param name="logUpLoad"></param>
+        public KnownException(string message, LogLevelEnum level, LogUpLoadEnum logUpLoad) : base(message)
+        {
+            Level = level;
+            this.logUpLoad = logUpLoad;
+        }
+
+        /// <summary>
+        ///  重写ToString方法
+        /// </summary>
+        /// <returns>返回级别与消息内容组合结果</returns>
+        public override string ToString()
+        {
+            return $"级别:{Level},消息:{Message}";
+        }
+    }
+}

+ 62 - 0
WCS.WorkEngineering/Worlds/Logs/Log.cs

@@ -0,0 +1,62 @@
+using WCS.Core;
+using ILog = WCS.Core.ILog;
+
+namespace WCS.WorkEngineering.Worlds.Logs
+{
+    /// <summary>
+    ///  带KEY的日志
+    /// </summary>
+    public class KeyLog
+    {
+        /// <summary>
+        ///  日志KEY
+        /// </summary>
+        public Channel Channel { get; set; } = null!;
+
+        /// <summary>
+        ///  日志信息
+        /// </summary>
+        public LogInfo Log { get; set; }
+
+        /// <summary>
+        ///  日志时间
+        /// </summary>
+
+        public DateTime Time { get; set; } = DateTime.Now;
+
+        /// <summary>
+        ///  日志信息
+        /// </summary>
+        /// <returns></returns>
+        public override string ToString()
+        {
+            return $"类型:{Log.Type.Description()},级别:{Log.Level.Description()},上传类型:{Log.LogUpLoad.Description()},内容:{Log.Message}";
+        }
+    }
+
+    /// <summary>
+    ///  日志信息
+    /// </summary>
+    public struct LogInfo : ILog
+    {
+        /// <summary>
+        ///  日志信息
+        /// </summary>
+        public ErrorTypeEnum Type { get; set; }
+
+        /// <summary>
+        /// 日志级别
+        /// </summary>
+        public LogLevelEnum Level { get; set; }
+
+        /// <summary>
+        ///  日志上传类型
+        /// </summary>
+        public LogUpLoadEnum LogUpLoad { get; set; }
+
+        /// <summary>
+        /// 日志内容
+        /// </summary>
+        public string Message { get; set; }
+    }
+}

+ 64 - 0
WCS.WorkEngineering/Worlds/Logs/LogEnum.cs

@@ -0,0 +1,64 @@
+using System.ComponentModel;
+
+namespace WCS.WorkEngineering.Worlds.Logs
+{
+    /// <summary>
+    ///  异常类型
+    /// </summary>
+    public enum ErrorTypeEnum
+    {
+        /// <summary>
+        ///  未知
+        /// </summary>
+        [Description("未知")]
+        Unkown = 0,
+
+        /// <summary>
+        ///  已知
+        /// </summary>
+        [Description("已知")]
+        Kown = 1
+    }
+
+    /// <summary>
+    ///  日志级别
+    /// </summary>
+    public enum LogLevelEnum
+    {
+        /// <summary>
+        ///  低
+        /// </summary>
+        [Description("低")]
+        Low = 0,
+
+        /// <summary>
+        ///  中
+        /// </summary>
+        [Description("中")]
+        Mid = 1,
+
+        /// <summary>
+        ///  高
+        /// </summary>
+        [Description("高")]
+        High = 2
+    }
+
+    /// <summary>
+    ///  日志上传类型
+    /// </summary>
+    public enum LogUpLoadEnum
+    {
+        /// <summary>
+        ///  上抛
+        /// </summary>
+        [Description("不上抛")]
+        NotUpLoad = 0,
+
+        /// <summary>
+        ///  上抛WMS
+        /// </summary>
+        [Description("上抛WMS")]
+        UpLoadWMS = 1,
+    }
+}