Просмотр исходного кода

!1042 调整写日志到数据库和到ES的注册顺序
Merge pull request !1042 from KaneLeung/next

zuohuaijun 2 лет назад
Родитель
Сommit
4261da3234

+ 2 - 1
Admin.NET/Admin.NET.Core/Logging/ElasticSearchLoggingWriter.cs

@@ -30,7 +30,8 @@ public class ElasticSearchLoggingWriter : IDatabaseLoggingWriter, IDisposable
         var sysOpLogEnabled = await _sysConfigService.GetConfigValue<bool>(CommonConst.SysOpLog);
         if (!sysOpLogEnabled) return;
 
-        var jsonStr = logMsg.Context.Get("loggingMonitor").ToString();
+        var jsonStr = logMsg.Context?.Get("loggingMonitor")?.ToString();
+        if (jsonStr is null) return;
         var loggingMonitor = JSON.Deserialize<dynamic>(jsonStr);
 
         // 不记录登录退出日志

+ 7 - 7
Admin.NET/Admin.NET.Core/Logging/LoggingSetup.cs

@@ -64,14 +64,15 @@ public static class LoggingSetup
             });
         }
 
-        // 日志写入数据库
-        if (App.GetConfig<bool>("Logging:Database:Enabled", true))
+        // 日志写入ElasticSearch
+        if (App.GetConfig<bool>("Logging:ElasticSearch:Enabled", true))
         {
-            services.AddDatabaseLogging<DatabaseLoggingWriter>(options =>
+            services.AddDatabaseLogging<ElasticSearchLoggingWriter>(options =>
             {
                 options.WithTraceId = true; // 显示线程Id
                 options.WithStackFrame = true; // 显示程序集
                 options.IgnoreReferenceLoop = false; // 忽略循环检测
+                options.MessageFormat = LoggerFormatter.Json;
                 options.WriteFilter = (logMsg) =>
                 {
                     return logMsg.LogName == "System.Logging.LoggingMonitor"; // 只写LoggingMonitor日志
@@ -79,15 +80,14 @@ public static class LoggingSetup
             });
         }
 
-        // 日志写入ElasticSearch
-        if (App.GetConfig<bool>("Logging:ElasticSearch:Enabled", true))
+        // 日志写入数据库
+        if (App.GetConfig<bool>("Logging:Database:Enabled", true))
         {
-            services.AddDatabaseLogging<ElasticSearchLoggingWriter>(options =>
+            services.AddDatabaseLogging<DatabaseLoggingWriter>(options =>
             {
                 options.WithTraceId = true; // 显示线程Id
                 options.WithStackFrame = true; // 显示程序集
                 options.IgnoreReferenceLoop = false; // 忽略循环检测
-                options.MessageFormat = LoggerFormatter.Json;
                 options.WriteFilter = (logMsg) =>
                 {
                     return logMsg.LogName == "System.Logging.LoggingMonitor"; // 只写LoggingMonitor日志