ソースを参照

fix(转链日志): 避免日志类型初始化失败

移除 TkLogCore 静态初始化阶段的 Redis 读取。
Redis 初始化完成后再加载日志开关,避免瞬时异常使类型在进程内永久失效。
dodo hold 1 週間 前
コミット
c664af1279
2 ファイル変更9 行追加9 行削除
  1. 5 6
      molilian.core/Core/log/base.cs
  2. 4 3
      molilian.core/middleware/CustomToken.cs

+ 5 - 6
molilian.core/Core/log/base.cs

@@ -11,12 +11,11 @@ namespace molilian.core
     public partial class TkLogCore
     {
 
-        public static bool save_dailys_log = false;
-
-        static TkLogCore()
-        {
-            int flag = RedisHelper.Get<int>("turn:save_dailys_log");
-            if (flag == 1) save_dailys_log = true;
+        public static bool save_dailys_log = false;
+
+        internal static void InitializeSaveDailyLogFlag()
+        {
+            save_dailys_log = RedisHelper.Get<int>("turn:save_dailys_log") == 1;
         }
         private static readonly SemaphoreSlim semaphore = new SemaphoreSlim(10, 10);
         private const int StatsHourlyExpireSeconds = 7 * 86400;

+ 4 - 3
molilian.core/middleware/CustomToken.cs

@@ -44,9 +44,10 @@ namespace molilian.core
                 var connstr = Environment.GetEnvironmentVariable("RedisConfig") ?? throw new ArgumentNullException("找不到对应的RedisConfig配置!");
                 RedisKit.InitializeAsync(connstr);
 
-                //初始化Redis
-                RedisUtility.Init();
-            }
+                //初始化Redis
+                RedisUtility.Init();
+                TkLogCore.InitializeSaveDailyLogFlag();
+            }
             catch (Exception ex)
             {
                 var endPoint = Environment.GetEnvironmentVariable("EndPoint");