Skip to content

Commit af4bd5a

Browse files
committed
Refactor logging configuration in Startup.cs for environment-specific setups
- Introduced separate methods for creating debug and release logger configurations. - Enhanced logging verbosity for debug builds and optimized settings for production. - Updated console output templates for better log readability based on the environment.
1 parent 5cc31c0 commit af4bd5a

File tree

1 file changed

+51
-14
lines changed

1 file changed

+51
-14
lines changed

src/Genocs.Logging/Startup.cs

Lines changed: 51 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -17,20 +17,57 @@ public static void EnsureInitialized()
1717
{
1818
if (Log.Logger is not Serilog.Core.Logger)
1919
{
20-
Log.Logger = new LoggerConfiguration()
21-
.MinimumLevel.Debug()
22-
.MinimumLevel.Override("Microsoft", LogEventLevel.Debug)
23-
.MinimumLevel.Override("MassTransit", LogEventLevel.Debug)
24-
.MinimumLevel.Override("Microsoft.EntityFrameworkCore", LogEventLevel.Debug)
25-
.MinimumLevel.Override("System", LogEventLevel.Debug)
26-
.MinimumLevel.Override("Microsoft.AspNetCore", LogEventLevel.Debug)
27-
.MinimumLevel.Override("Microsoft.AspNetCore.Hosting", LogEventLevel.Debug)
28-
.MinimumLevel.Override("Microsoft.AspNetCore.Routing", LogEventLevel.Debug)
29-
.MinimumLevel.Override("Microsoft.AspNetCore.Http", LogEventLevel.Debug)
30-
.MinimumLevel.Override("Microsoft.AspNetCore.Mvc", LogEventLevel.Debug)
31-
.Enrich.FromLogContext()
32-
.WriteTo.Console()
33-
.CreateLogger();
20+
#if DEBUG
21+
Log.Logger = CreateDebugLogger();
22+
#else
23+
Log.Logger = CreateReleaseLogger();
24+
#endif
3425
}
3526
}
27+
28+
#if DEBUG
29+
/// <summary>
30+
/// Creates a debug logger configuration with verbose logging for development.
31+
/// </summary>
32+
/// <returns>Configured Serilog logger for debug builds.</returns>
33+
private static Serilog.Core.Logger CreateDebugLogger()
34+
{
35+
return new LoggerConfiguration()
36+
.MinimumLevel.Debug()
37+
.MinimumLevel.Override("Microsoft", LogEventLevel.Debug)
38+
.MinimumLevel.Override("MassTransit", LogEventLevel.Debug)
39+
.MinimumLevel.Override("Microsoft.EntityFrameworkCore", LogEventLevel.Debug)
40+
.MinimumLevel.Override("System", LogEventLevel.Debug)
41+
.MinimumLevel.Override("Microsoft.AspNetCore", LogEventLevel.Debug)
42+
.MinimumLevel.Override("Microsoft.AspNetCore.Hosting", LogEventLevel.Debug)
43+
.MinimumLevel.Override("Microsoft.AspNetCore.Routing", LogEventLevel.Debug)
44+
.MinimumLevel.Override("Microsoft.AspNetCore.Http", LogEventLevel.Debug)
45+
.MinimumLevel.Override("Microsoft.AspNetCore.Mvc", LogEventLevel.Debug)
46+
.Enrich.FromLogContext()
47+
.WriteTo.Console(outputTemplate: "[{Timestamp:HH:mm:ss} {Level:u3}] {Message:lj}{NewLine}{Exception}")
48+
.CreateLogger();
49+
}
50+
#else
51+
/// <summary>
52+
/// Creates a release logger configuration with optimized logging for production.
53+
/// </summary>
54+
/// <returns>Configured Serilog logger for release builds.</returns>
55+
private static Serilog.Core.Logger CreateReleaseLogger()
56+
{
57+
return new LoggerConfiguration()
58+
.MinimumLevel.Information()
59+
.MinimumLevel.Override("Microsoft", LogEventLevel.Warning)
60+
.MinimumLevel.Override("MassTransit", LogEventLevel.Warning)
61+
.MinimumLevel.Override("Microsoft.EntityFrameworkCore", LogEventLevel.Warning)
62+
.MinimumLevel.Override("System", LogEventLevel.Warning)
63+
.MinimumLevel.Override("Microsoft.AspNetCore", LogEventLevel.Warning)
64+
.MinimumLevel.Override("Microsoft.AspNetCore.Hosting", LogEventLevel.Information)
65+
.MinimumLevel.Override("Microsoft.AspNetCore.Routing", LogEventLevel.Warning)
66+
.MinimumLevel.Override("Microsoft.AspNetCore.Http", LogEventLevel.Warning)
67+
.MinimumLevel.Override("Microsoft.AspNetCore.Mvc", LogEventLevel.Warning)
68+
.Enrich.FromLogContext()
69+
.WriteTo.Console(outputTemplate: "[{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} {Level:u3}] {Message:lj}{NewLine}{Exception}")
70+
.CreateLogger();
71+
}
72+
#endif
3673
}

0 commit comments

Comments
 (0)