Переглянути джерело

记录异常发生时请求的接口

qinchaoyue 6 місяців тому
батько
коміт
8562660f0e

+ 2 - 0
src/Hotline.Logger/Filters/ErrorHandlingFilter.cs

@@ -46,8 +46,10 @@ namespace HotPot.Mvc.Filters
             var exceptionModel = new ExceptionModel();
             try
             {
+
                 context.HttpContext.Items.TryAdd("ErrorId", exceptionModel.Id);
                 exceptionModel.Context = context.Exception.ToJson();
+                exceptionModel.Method = context.HttpContext.Request.Path;
                 exceptionModel.Message = context.Exception.Message;
                 _logger.Error(exceptionModel.ToJson());
             }

+ 0 - 12
src/Hotline.Logger/Models/AccModel.cs

@@ -28,24 +28,12 @@
         /// </summary>
         public string Method { get; set; }
 
-        /// <summary>
-        /// 说明
-        /// 调用方法注释说明,可为空
-        /// </summary>
-        public string MethodNote { get; set; } = string.Empty;
-
         /// <summary>
         /// 请求入参
         /// 请求(Request)的请求参数,响应时为空
         /// </summary>
         public string InParam { get; set; }
 
-        /// <summary>
-        /// 异常级别
-        /// 有异常时的异常级别,通常为Error
-        /// </summary>
-        public string ErrorLevel { get; set; }
-
         /// <summary>
         /// 异常ID
         /// 调用服务有异常时,异常信息的日志ID,没异常日志时为空

+ 6 - 1
src/Hotline.Logger/Models/BaseLogModel.cs

@@ -4,10 +4,15 @@ namespace Hotline.Logger.Models
 {
     public class BaseLogModel
     {
+        public BaseLogModel()
+        {
+            Id = Guid.NewGuid().ToString();
+        }
+
         /// <summary>
         /// 日志id
         /// </summary>
-        public Guid Id => Guid.NewGuid();
+        public string Id { get; set; }
 
         /// <summary>
         /// 时间点

+ 6 - 0
src/Hotline.Logger/Models/ExceptionModel.cs

@@ -62,5 +62,11 @@ namespace Hotline.Logger.Models
         /// 包括了异常堆栈信息,用于分析具体问题
         /// </summary>
         public string Context { get; set; } = string.Empty;
+
+        /// <summary>
+        /// 被调用方法
+        /// 被调用的方法,直接API地址
+        /// </summary>
+        public string Method { get; set; }
     }
 }

+ 2 - 2
src/Hotline.Logger/RequestResponseLoggingMiddleware.cs

@@ -146,10 +146,10 @@ namespace Hotline.Logger
                 try
                 {
                     accModel.User = context.User.Identities
-                        .First().Claims
+                        .FirstOrDefault()?.Claims
                         .Where(m => m.Type == accModel.UserKey)
                         .Select(m => m.Value)
-                        .First();
+                        .FirstOrDefault() ?? string.Empty;
                 }
                 catch { }
             }