From 5235b21e9cfde372f91282215f3ed426fd457f98 Mon Sep 17 00:00:00 2001 From: phone2good10-pixel Date: Thu, 12 Mar 2026 11:52:33 +0300 Subject: [PATCH] Update FileLogger.cs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Добавлены проверки на null для параметров output и outputPath в конструкторе с использованием ArgumentNullException.ThrowIfNull() и ArgumentException.ThrowIfNullOrWhiteSpace() Добавлена проверка на null для параметра message в методе Log с использованием ArgumentNullException.ThrowIfNull() Замена Task.FromResult(0) на Task.CompletedTask для возврата завершенной задачи без лишних аллокаций памяти Исправлено логирование - запись message.Message вместо message для корректного вывода только текста сообщения Упрощен синтаксис using-блока - использование современного объявления using var writer без дополнительных скобок --- src/NuGetMirror/FileLogger.cs | 26 +++++++++++--------------- 1 file changed, 11 insertions(+), 15 deletions(-) diff --git a/src/NuGetMirror/FileLogger.cs b/src/NuGetMirror/FileLogger.cs index 863ecab..6aedb9b 100644 --- a/src/NuGetMirror/FileLogger.cs +++ b/src/NuGetMirror/FileLogger.cs @@ -6,17 +6,11 @@ namespace NuGetMirror { public class FileLogger : LoggerBase { - private static readonly object _lockObj = new object(); + private static readonly object _lockObj = new(); public bool Enabled { get; set; } = true; - public ILogger OutputLogger { get; } - public string OutputPath { get; } - - /// - /// Verbosity to filter on for the file. - /// public LogLevel FileLoggerVerbosity { get; set; } = LogLevel.Error; public FileLogger(ILogger output, string outputPath) @@ -27,6 +21,9 @@ public FileLogger(ILogger output, string outputPath) public FileLogger(ILogger output, LogLevel level, string outputPath) : base(LogLevel.Debug) { + ArgumentNullException.ThrowIfNull(output); + ArgumentException.ThrowIfNullOrWhiteSpace(outputPath); + FileLoggerVerbosity = level; OutputLogger = output; OutputPath = outputPath; @@ -34,17 +31,17 @@ public FileLogger(ILogger output, LogLevel level, string outputPath) public override void Log(ILogMessage message) { - // Always pass the message to the inner logger. + ArgumentNullException.ThrowIfNull(message); + OutputLogger.Log(message); - if ((int)message.Level >= (int)FileLoggerVerbosity) + if (message.Level >= FileLoggerVerbosity) { lock (_lockObj) { - using (var writer = new StreamWriter(File.Open(OutputPath, FileMode.Append, FileAccess.Write))) - { - writer.WriteLine(message); - } + using var writer = new StreamWriter( + File.Open(OutputPath, FileMode.Append, FileAccess.Write)); + writer.WriteLine(message.Message); } } } @@ -52,8 +49,7 @@ public override void Log(ILogMessage message) public override Task LogAsync(ILogMessage message) { Log(message); - - return Task.FromResult(0); + return Task.CompletedTask; } } }