diff --git a/EonaCat.Logger/EonaCatCoreLogger/Internal/BatchingLoggerProvider.cs b/EonaCat.Logger/EonaCatCoreLogger/Internal/BatchingLoggerProvider.cs index 6c2d677..6f20da0 100644 --- a/EonaCat.Logger/EonaCatCoreLogger/Internal/BatchingLoggerProvider.cs +++ b/EonaCat.Logger/EonaCatCoreLogger/Internal/BatchingLoggerProvider.cs @@ -37,7 +37,7 @@ namespace EonaCat.Logger.EonaCatCoreLogger.Internal throw new ArgumentOutOfRangeException(nameof(loggerOptions.FlushPeriod), $"{nameof(loggerOptions.FlushPeriod)} must be longer than zero."); } - if (options is FileLoggerOptions fileLoggerOptions) + if (options.Value is FileLoggerOptions fileLoggerOptions) { UseLocalTime = fileLoggerOptions.UseLocalTime; } diff --git a/Testers/EonaCat.Logger.Test.Web/Logger.cs b/Testers/EonaCat.Logger.Test.Web/Logger.cs index dedaa7c..93cd593 100644 --- a/Testers/EonaCat.Logger.Test.Web/Logger.cs +++ b/Testers/EonaCat.Logger.Test.Web/Logger.cs @@ -6,17 +6,9 @@ namespace EonaCat.Logger.Test.Web { public static class Logger { - private static readonly LogManager LogManager = new LogManager(new LoggerSettings - { - Id = "EonaCatDnsLogger", - MaxLogType = ELogType.TRACE, - FileLoggerOptions = - { - LogDirectory = "Logs", - FileSizeLimit = 20_000_000, // 20 MB - } - }); - + public static ELogType MaxLogType { get; set; } + public static bool UseLocalTime { get; set; } + private static LogManager LogManager; public static string LogFolder => "Logs"; public static string CurrentLogFile => LogManager.CurrentLogFile; public static bool IsDisabled { get; set; } @@ -108,5 +100,22 @@ namespace EonaCat.Logger.Test.Web LogManager.Write(exception, module: message, writeToConsole: writeToConsole); } + + public static void Configure() + { + var loggerSettings = new LoggerSettings + { + Id = "EonaCatDnsLogger", + MaxLogType = ELogType.TRACE, + UseLocalTime = UseLocalTime, + FileLoggerOptions = + { + LogDirectory = "Logs", + FileSizeLimit = 20_000_000, // 20 MB, + UseLocalTime = UseLocalTime, + } + }; + LogManager = new LogManager(loggerSettings); + } } } diff --git a/Testers/EonaCat.Logger.Test.Web/Program.cs b/Testers/EonaCat.Logger.Test.Web/Program.cs index d684959..357c66b 100644 --- a/Testers/EonaCat.Logger.Test.Web/Program.cs +++ b/Testers/EonaCat.Logger.Test.Web/Program.cs @@ -13,6 +13,7 @@ var builder = WebApplication.CreateBuilder(args); FileLoggerOptions options = new FileLoggerOptions(); options.MaxRolloverFiles = 5; options.FileSizeLimit = 1 * 1024 * 1024 / 4; +options.UseLocalTime = true; builder.Logging.AddEonaCatFileLogger(fileLoggerOptions: options, filenamePrefix:"web"); builder.Services.AddRazorPages(); @@ -59,6 +60,10 @@ builder.Services.AddMemoryCache(); var app = builder.Build(); +Logger.UseLocalTime = true; +Logger.MaxLogType = ELogType.TRACE; +Logger.Configure(); + // Configure the HTTP request pipeline. if (!app.Environment.IsDevelopment()) { @@ -96,6 +101,9 @@ app.MapRazorPages().RateLimit(); void RunLoggingExceptionTests() { var loggerSettings = new LoggerSettings(); + loggerSettings.FileLoggerOptions.UseLocalTime = true; + loggerSettings.UseLocalTime = true; + loggerSettings.MaxLogType = ELogType.TRACE; var logger = new LogManager(loggerSettings); for (int i = 0; i < 10; i++) @@ -143,10 +151,15 @@ void RunWebLoggingExceptionTests() void RunWebLoggingTests() { + if (!Directory.Exists(Logger.LogFolder)) + { + Directory.CreateDirectory(Logger.LogFolder); + } + for (int i = 0; i < 9000000; i++) { app.Logger.LogInformation($"web-test {i}"); - File.AppendAllText("test.log", $"WebLogged: {i}{Environment.NewLine}"); + File.AppendAllText(Path.Combine(Logger.LogFolder, "test.log"), $"WebLogged: {i}{Environment.NewLine}"); Console.WriteLine($"WebLogged: {i}"); Task.Delay(1); } @@ -155,6 +168,9 @@ void RunWebLoggingTests() void RunLoggingTests() { var loggerSettings = new LoggerSettings(); + loggerSettings.UseLocalTime = true; + loggerSettings.FileLoggerOptions.UseLocalTime = true; + loggerSettings.MaxLogType = ELogType.TRACE; loggerSettings.FileLoggerOptions.FileSizeLimit = 1024 * 1024 * 1; loggerSettings.FileLoggerOptions.FileNamePrefix = "AllTypes"; loggerSettings.FileLoggerOptions.MaxRolloverFiles = 5;