From 2f56bae044923c5a354e6da0dfe2c54d1803f27e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9F=D1=8B=D1=82=D0=BA=D0=BE=D0=B2=20=D0=A0=D0=BE=D0=BC?= =?UTF-8?q?=D0=B0=D0=BD?= Date: Thu, 4 Jun 2026 20:55:05 +0300 Subject: [PATCH] =?UTF-8?q?=D0=98=D0=B7=D0=BC=D0=B5=D0=BD=D1=91=D0=BD=20?= =?UTF-8?q?=D1=84=D0=B0=D0=B9=D0=BB=20=D0=BB=D0=BE=D0=B3=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- .../DependencyInjection/ServiceCollectionExtensions.cs | 10 +++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 35d54aa..4125bfb 100644 --- a/README.md +++ b/README.md @@ -48,7 +48,7 @@ dotnet run --project src/Sms.TaskTwo.Avalonia/Sms.TaskTwo.Avalonia.csproj Класс `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`. Пример строки: diff --git a/src/Sms.TaskTwo.Core/DependencyInjection/ServiceCollectionExtensions.cs b/src/Sms.TaskTwo.Core/DependencyInjection/ServiceCollectionExtensions.cs index 0fc3b61..7ca1c02 100644 --- a/src/Sms.TaskTwo.Core/DependencyInjection/ServiceCollectionExtensions.cs +++ b/src/Sms.TaskTwo.Core/DependencyInjection/ServiceCollectionExtensions.cs @@ -28,9 +28,13 @@ public static class ServiceCollectionExtensions { var options = serviceProvider.GetRequiredService>().Value; Directory.CreateDirectory(options.LogDirectory); - var fileName = Path.Combine( - options.LogDirectory, - $"test-sms-wpf-app-{DateTime.Now:yyyyMMdd}.log"); + var timestamp = DateTime.Now.ToString("yyyyMMdd-hh:mm:ss"); + var logFileName = SanitizeFileName($"test-sms-wpf-app-{timestamp}.log"); + var fileName = Path.Combine(options.LogDirectory, logFileName); return ConsoleLog.Open(fileName); } + + private static string SanitizeFileName(string fileName) => + string.Concat(fileName.Select(static c => + Path.GetInvalidFileNameChars().Contains(c) ? '-' : c)); }