Allow for configuration of log file names (#19074)

* Added configuration for the log file name and format.

* Added unit test for LoggingConfiguration.

* Rely on configuration validation to verify supported log file format arguments.

* Fixed unit test failing on build pipeline.
This commit is contained in:
Andy Butland
2025-04-23 12:28:51 +02:00
committed by GitHub
parent 1bddcb8d39
commit 7c98af558d
10 changed files with 236 additions and 6 deletions

View File

@@ -0,0 +1,51 @@
// Copyright (c) Umbraco.
// See LICENSE for more details.
using Microsoft.Extensions.Options;
using NUnit.Framework;
using Umbraco.Cms.Core.Configuration.Models;
using Umbraco.Cms.Core.Configuration.Models.Validation;
using Umbraco.Cms.Core.Logging;
namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Core.Configuration.Models.Validation
{
[TestFixture]
public class LoggingSettingsValidatorTests
{
[Test]
public void Returns_Success_ForValid_Configuration()
{
var validator = new LoggingSettingsValidator();
LoggingSettings options = BuildLoggingSettings();
ValidateOptionsResult result = validator.Validate("settings", options);
Assert.True(result.Succeeded);
}
[Test]
public void Returns_Fail_For_Configuration_With_Invalid_FileNameFormatArguments()
{
var validator = new LoggingSettingsValidator();
LoggingSettings options = BuildLoggingSettings(fileNameFormatArguments: "MachineName,Invalid");
ValidateOptionsResult result = validator.Validate("settings", options);
Assert.False(result.Succeeded);
}
[Test]
public void Returns_Fail_For_Configuration_With_Invalid_FileNameFormat()
{
var validator = new LoggingSettingsValidator();
LoggingSettings options = BuildLoggingSettings(fileNameFormat: "InvalidAsTooManyPlaceholders_{0}_{1}");
ValidateOptionsResult result = validator.Validate("settings", options);
Assert.False(result.Succeeded);
}
private static LoggingSettings BuildLoggingSettings(
string fileNameFormat = LoggingConfiguration.DefaultLogFileNameFormat,
string fileNameFormatArguments = LoggingConfiguration.DefaultLogFileNameFormatArguments) =>
new LoggingSettings
{
FileNameFormat = fileNameFormat,
FileNameFormatArguments = fileNameFormatArguments,
};
}
}