ソースを参照

Add thread ID and source to logging

Bond-009 5 年 前
コミット
65fe243afb

+ 1 - 0
Jellyfin.Server/Jellyfin.Server.csproj

@@ -42,6 +42,7 @@
     <PackageReference Include="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="3.1.0" />
     <PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="3.1.0" />
     <PackageReference Include="Serilog.AspNetCore" Version="3.2.0" />
+    <PackageReference Include="Serilog.Enrichers.Thread" Version="3.1.0" />
     <PackageReference Include="Serilog.Settings.Configuration" Version="3.1.0" />
     <PackageReference Include="Serilog.Sinks.Async" Version="1.4.0" />
     <PackageReference Include="Serilog.Sinks.Console" Version="3.1.1" />

+ 4 - 2
Jellyfin.Server/Program.cs

@@ -475,17 +475,19 @@ namespace Jellyfin.Server
                 Serilog.Log.Logger = new LoggerConfiguration()
                     .ReadFrom.Configuration(configuration)
                     .Enrich.FromLogContext()
+                    .Enrich.WithThreadId()
                     .CreateLogger();
             }
             catch (Exception ex)
             {
                 Serilog.Log.Logger = new LoggerConfiguration()
-                    .WriteTo.Console(outputTemplate: "[{Timestamp:HH:mm:ss}] [{Level:u3}] {Message:lj}{NewLine}{Exception}")
+                    .WriteTo.Console(outputTemplate: "[{Timestamp:HH:mm:ss}] [{Level:u3}] {ThreadId} {SourceContext}: {Message:lj} {NewLine}{Exception}")
                     .WriteTo.Async(x => x.File(
                         Path.Combine(appPaths.LogDirectoryPath, "log_.log"),
                         rollingInterval: RollingInterval.Day,
-                        outputTemplate: "[{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz}] [{Level:u3}] {Message}{NewLine}{Exception}"))
+                        outputTemplate: "[{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz}] [{Level:u3}] {ThreadId} {SourceContext}:{Message} {NewLine}{Exception}"))
                     .Enrich.FromLogContext()
+                    .Enrich.WithThreadId()
                     .CreateLogger();
 
                 Serilog.Log.Logger.Fatal(ex, "Failed to create/read logger configuration");

+ 4 - 3
Jellyfin.Server/Resources/Configuration/logging.json

@@ -5,7 +5,7 @@
             {
                 "Name": "Console",
                 "Args": {
-                    "outputTemplate": "[{Timestamp:HH:mm:ss}] [{Level:u3}] {Message:lj}{NewLine}{Exception}"
+                    "outputTemplate": "[{Timestamp:HH:mm:ss}] [{Level:u3}] {ThreadId} {SourceContext}: {Message:lj} {NewLine}{Exception}"
                 }
             },
             {
@@ -20,12 +20,13 @@
                                 "retainedFileCountLimit": 3,
                                 "rollOnFileSizeLimit": true,
                                 "fileSizeLimitBytes": 100000000,
-                                "outputTemplate": "[{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz}] [{Level:u3}] {Message}{NewLine}{Exception}"
+                                "outputTemplate": "[{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz}] [{Level:u3}] {ThreadId} {SourceContext}:{Message} {NewLine}{Exception}"
                             }
                         }
                     ]
                 }
             }
-        ]
+        ],
+        "Enrich": [ "FromLogContext", "WithThreadId" ]
     }
 }