Изменён файл логов

This commit is contained in:
2026-06-04 20:55:05 +03:00
parent 7e7ef33155
commit 2f56bae044
2 changed files with 8 additions and 4 deletions

View File

@@ -48,7 +48,7 @@ dotnet run --project src/Sms.TaskTwo.Avalonia/Sms.TaskTwo.Avalonia.csproj
Класс `Sms.TaskTwo.Core.Logging.ConsoleLog` — дублирует записи в консоль и файл. Класс `Sms.TaskTwo.Core.Logging.ConsoleLog` — дублирует записи в консоль и файл.
По умолчанию для GUI: `logs/test-sms-wpf-app-yyyyMMdd.log`. При вызове `ConsoleLog.Open()` без имени — `test-sms-console-app-yyyyMMdd_HHmmss.log`. По умолчанию для GUI: `logs/test-sms-wpf-app-yyyyMMdd-hh:mm:ss.log` (на Windows двоеточия во времени заменяются на `-`). При вызове `ConsoleLog.Open()` без имени — `test-sms-console-app-yyyyMMdd_HHmmss.log`.
Пример строки: Пример строки:

View File

@@ -28,9 +28,13 @@ public static class ServiceCollectionExtensions
{ {
var options = serviceProvider.GetRequiredService<IOptions<LoggingOptions>>().Value; var options = serviceProvider.GetRequiredService<IOptions<LoggingOptions>>().Value;
Directory.CreateDirectory(options.LogDirectory); Directory.CreateDirectory(options.LogDirectory);
var fileName = Path.Combine( var timestamp = DateTime.Now.ToString("yyyyMMdd-hh:mm:ss");
options.LogDirectory, var logFileName = SanitizeFileName($"test-sms-wpf-app-{timestamp}.log");
$"test-sms-wpf-app-{DateTime.Now:yyyyMMdd}.log"); var fileName = Path.Combine(options.LogDirectory, logFileName);
return ConsoleLog.Open(fileName); return ConsoleLog.Open(fileName);
} }
private static string SanitizeFileName(string fileName) =>
string.Concat(fileName.Select(static c =>
Path.GetInvalidFileNameChars().Contains(c) ? '-' : c));
} }