From 30d4233565aed629f2488b4c76f5ee28dd467529 Mon Sep 17 00:00:00 2001 From: Mole Date: Mon, 21 Sep 2020 08:19:26 +0200 Subject: [PATCH] Use MS Ilogger in LocalizedTextService --- .../Packaging/PackageDefinitionXmlParser.cs | 6 ++-- .../Packaging/PackagesRepository.cs | 13 ++++--- .../CompositionExtensions/Services.cs | 8 ++--- .../Implement/LocalizedTextService.cs | 10 +++--- .../LocalizedTextServiceFileSources.cs | 12 +++---- .../Testing/IntegrationTestComposer.cs | 5 +-- .../CreatedPackagesRepositoryTests.cs | 2 +- .../Services/LocalizedTextServiceTests.cs | 35 ++++++++++--------- src/Umbraco.Tests/Testing/UmbracoTestBase.cs | 12 +++---- 9 files changed, 54 insertions(+), 49 deletions(-) diff --git a/src/Umbraco.Core/Packaging/PackageDefinitionXmlParser.cs b/src/Umbraco.Core/Packaging/PackageDefinitionXmlParser.cs index 1d93285c26..a9516d7e25 100644 --- a/src/Umbraco.Core/Packaging/PackageDefinitionXmlParser.cs +++ b/src/Umbraco.Core/Packaging/PackageDefinitionXmlParser.cs @@ -2,8 +2,8 @@ using System.Collections.Generic; using System.Linq; using System.Xml.Linq; +using Microsoft.Extensions.Logging; using Umbraco.Core.Configuration; -using Umbraco.Core.Logging; using Umbraco.Core.Models.Packaging; namespace Umbraco.Core.Packaging @@ -13,10 +13,10 @@ namespace Umbraco.Core.Packaging /// public class PackageDefinitionXmlParser { - private readonly ILogger _logger; + private readonly ILogger _logger; private readonly IUmbracoVersion _umbracoVersion; - public PackageDefinitionXmlParser(ILogger logger, IUmbracoVersion umbracoVersion) + public PackageDefinitionXmlParser(ILogger logger, IUmbracoVersion umbracoVersion) { _logger = logger; _umbracoVersion = umbracoVersion; diff --git a/src/Umbraco.Core/Packaging/PackagesRepository.cs b/src/Umbraco.Core/Packaging/PackagesRepository.cs index 04f50eab30..59741ab1ce 100644 --- a/src/Umbraco.Core/Packaging/PackagesRepository.cs +++ b/src/Umbraco.Core/Packaging/PackagesRepository.cs @@ -6,10 +6,10 @@ using System.IO.Compression; using System.Linq; using System.Xml.Linq; using Microsoft.Extensions.Options; +using Microsoft.Extensions.Logging; using Umbraco.Core.Configuration; using Umbraco.Core.Configuration.Models; using Umbraco.Core.Hosting; -using Umbraco.Core.Logging; using Umbraco.Core.Models; using Umbraco.Core.Models.Packaging; using Umbraco.Core.Services; @@ -29,7 +29,8 @@ namespace Umbraco.Core.Packaging private readonly IMacroService _macroService; private readonly ILocalizationService _languageService; private readonly IEntityXmlSerializer _serializer; - private readonly ILogger _logger; + private readonly ILoggerFactory _loggerFactory; + private readonly ILogger _logger; private readonly IHostingEnvironment _hostingEnvironment; private readonly string _packageRepositoryFileName; private readonly string _mediaFolderPath; @@ -60,7 +61,8 @@ namespace Umbraco.Core.Packaging IDataTypeService dataTypeService, IFileService fileService, IMacroService macroService, ILocalizationService languageService, IHostingEnvironment hostingEnvironment, - IEntityXmlSerializer serializer, ILogger logger, + IEntityXmlSerializer serializer, + ILoggerFactory loggerFactory, IUmbracoVersion umbracoVersion, IOptions globalSettings, string packageRepositoryFileName, @@ -74,7 +76,8 @@ namespace Umbraco.Core.Packaging _macroService = macroService; _languageService = languageService; _serializer = serializer; - _logger = logger; + _loggerFactory = loggerFactory; + _logger = _loggerFactory.CreateLogger(); _hostingEnvironment = hostingEnvironment; _packageRepositoryFileName = packageRepositoryFileName; @@ -82,7 +85,7 @@ namespace Umbraco.Core.Packaging _packagesFolderPath = packagesFolderPath ?? Constants.SystemDirectories.Packages; _mediaFolderPath = mediaFolderPath ?? globalSettings.Value.UmbracoMediaPath + "/created-packages"; - _parser = new PackageDefinitionXmlParser(logger, umbracoVersion); + _parser = new PackageDefinitionXmlParser(_loggerFactory.CreateLogger(), umbracoVersion); _umbracoVersion = umbracoVersion; } diff --git a/src/Umbraco.Infrastructure/Composing/CompositionExtensions/Services.cs b/src/Umbraco.Infrastructure/Composing/CompositionExtensions/Services.cs index ffd8b880f2..a4744d3d2d 100644 --- a/src/Umbraco.Infrastructure/Composing/CompositionExtensions/Services.cs +++ b/src/Umbraco.Infrastructure/Composing/CompositionExtensions/Services.cs @@ -2,13 +2,13 @@ using System.IO; using System.Linq; using Microsoft.Extensions.Options; +using Microsoft.Extensions.Logging; using Umbraco.Core.Cache; using Umbraco.Core.Configuration; using Umbraco.Core.Configuration.Models; using Umbraco.Core.Events; using Umbraco.Core.Hosting; using Umbraco.Core.IO; -using Umbraco.Core.Logging; using Umbraco.Core.Packaging; using Umbraco.Core.Routing; using Umbraco.Core.Services; @@ -61,7 +61,7 @@ namespace Umbraco.Core.Composing.CompositionExtensions composition.Register(SourcesFactory); composition.RegisterUnique(factory => new LocalizedTextService( factory.GetInstance>(), - factory.GetInstance())); + factory.GetInstance>())); composition.RegisterUnique(); @@ -94,7 +94,7 @@ namespace Umbraco.Core.Composing.CompositionExtensions factory.GetInstance(), factory.GetInstance(), factory.GetInstance(), - factory.GetInstance(), + factory.GetInstance(), factory.GetInstance(), factory.GetInstance>(), packageRepoFileName); @@ -122,7 +122,7 @@ namespace Umbraco.Core.Composing.CompositionExtensions .Select(x => new LocalizedTextServiceSupplementaryFileSource(x, true)); return new LocalizedTextServiceFileSources( - container.GetInstance(), + container.GetInstance>(), container.GetInstance(), mainLangFolder, pluginLangFolders.Concat(userLangFolders)); diff --git a/src/Umbraco.Infrastructure/Services/Implement/LocalizedTextService.cs b/src/Umbraco.Infrastructure/Services/Implement/LocalizedTextService.cs index 86612f7a7e..4d12f111e3 100644 --- a/src/Umbraco.Infrastructure/Services/Implement/LocalizedTextService.cs +++ b/src/Umbraco.Infrastructure/Services/Implement/LocalizedTextService.cs @@ -4,7 +4,7 @@ using System.Globalization; using System.Linq; using System.Xml.Linq; using System.Xml.XPath; -using Umbraco.Core.Logging; +using Microsoft.Extensions.Logging; namespace Umbraco.Core.Services.Implement { @@ -12,7 +12,7 @@ namespace Umbraco.Core.Services.Implement public class LocalizedTextService : ILocalizedTextService { - private readonly ILogger _logger; + private readonly ILogger _logger; private readonly Lazy _fileSources; private readonly IDictionary>> _dictionarySource; private readonly IDictionary> _xmlSource; @@ -22,7 +22,7 @@ namespace Umbraco.Core.Services.Implement /// /// /// - public LocalizedTextService(Lazy fileSources, ILogger logger) + public LocalizedTextService(Lazy fileSources, ILogger logger) { if (logger == null) throw new ArgumentNullException("logger"); _logger = logger; @@ -35,7 +35,7 @@ namespace Umbraco.Core.Services.Implement /// /// /// - public LocalizedTextService(IDictionary> source, ILogger logger) + public LocalizedTextService(IDictionary> source, ILogger logger) { if (source == null) throw new ArgumentNullException("source"); if (logger == null) throw new ArgumentNullException("logger"); @@ -48,7 +48,7 @@ namespace Umbraco.Core.Services.Implement /// /// /// - public LocalizedTextService(IDictionary>> source, ILogger logger) + public LocalizedTextService(IDictionary>> source, ILogger logger) { _dictionarySource = source ?? throw new ArgumentNullException(nameof(source)); _logger = logger ?? throw new ArgumentNullException(nameof(logger)); diff --git a/src/Umbraco.Infrastructure/Services/Implement/LocalizedTextServiceFileSources.cs b/src/Umbraco.Infrastructure/Services/Implement/LocalizedTextServiceFileSources.cs index 905361fe2f..b4c49b9509 100644 --- a/src/Umbraco.Infrastructure/Services/Implement/LocalizedTextServiceFileSources.cs +++ b/src/Umbraco.Infrastructure/Services/Implement/LocalizedTextServiceFileSources.cs @@ -8,9 +8,7 @@ using System.Xml.Linq; using Umbraco.Composing; using Umbraco.Core.Cache; using Umbraco.Core.Composing; -using Umbraco.Core.Logging; using Microsoft.Extensions.Logging; -using ILogger = Umbraco.Core.Logging.ILogger; namespace Umbraco.Core.Services.Implement { @@ -19,7 +17,7 @@ namespace Umbraco.Core.Services.Implement /// public class LocalizedTextServiceFileSources { - private readonly ILogger _logger; + private readonly ILogger _logger; private readonly IAppPolicyCache _cache; private readonly IEnumerable _supplementFileSources; private readonly DirectoryInfo _fileSourceFolder; @@ -39,7 +37,7 @@ namespace Umbraco.Core.Services.Implement /// /// public LocalizedTextServiceFileSources( - ILogger logger, + ILogger logger, AppCaches appCaches, DirectoryInfo fileSourceFolder, IEnumerable supplementFileSources) @@ -53,7 +51,7 @@ namespace Umbraco.Core.Services.Implement if (fileSourceFolder.Exists == false) { - Current.Logger.LogWarning("The folder does not exist: {FileSourceFolder}, therefore no sources will be discovered", fileSourceFolder.FullName); + _logger.LogWarning("The folder does not exist: {FileSourceFolder}, therefore no sources will be discovered", fileSourceFolder.FullName); } else { @@ -101,7 +99,7 @@ namespace Umbraco.Core.Services.Implement } catch (CultureNotFoundException) { - Current.Logger.LogWarning("The culture {CultureValue} found in the file {CultureFile} is not a valid culture", cultureVal, fileInfo.FullName); + _logger.LogWarning("The culture {CultureValue} found in the file {CultureFile} is not a valid culture", cultureVal, fileInfo.FullName); //If the culture in the file is invalid, we'll just hope the file name is a valid culture below, otherwise // an exception will be thrown. } @@ -142,7 +140,7 @@ namespace Umbraco.Core.Services.Implement /// /// Constructor /// - public LocalizedTextServiceFileSources(ILogger logger, AppCaches appCaches, DirectoryInfo fileSourceFolder) + public LocalizedTextServiceFileSources(ILogger logger, AppCaches appCaches, DirectoryInfo fileSourceFolder) : this(logger, appCaches, fileSourceFolder, Enumerable.Empty()) { } diff --git a/src/Umbraco.Tests.Integration/Testing/IntegrationTestComposer.cs b/src/Umbraco.Tests.Integration/Testing/IntegrationTestComposer.cs index 48f0146272..cf5bbf1473 100644 --- a/src/Umbraco.Tests.Integration/Testing/IntegrationTestComposer.cs +++ b/src/Umbraco.Tests.Integration/Testing/IntegrationTestComposer.cs @@ -63,6 +63,7 @@ namespace Umbraco.Tests.Integration.Testing { var globalSettings = factory.GetInstance>(); var logger = factory.GetInstance(); + var loggerFactory = factory.GetInstance(); var appCaches = factory.GetInstance(); var localizedTextService = new LocalizedTextService( @@ -78,12 +79,12 @@ namespace Umbraco.Tests.Integration.Testing var mainLangFolder = new DirectoryInfo(Path.Combine(netcoreUI.FullName, globalSettings.Value.UmbracoPath.TrimStart("~/"), "config", "lang")); return new LocalizedTextServiceFileSources( - logger, + loggerFactory.CreateLogger(), appCaches, mainLangFolder); }), - logger); + loggerFactory.CreateLogger()); return localizedTextService; } diff --git a/src/Umbraco.Tests/Packaging/CreatedPackagesRepositoryTests.cs b/src/Umbraco.Tests/Packaging/CreatedPackagesRepositoryTests.cs index 90a352ad39..c48973740a 100644 --- a/src/Umbraco.Tests/Packaging/CreatedPackagesRepositoryTests.cs +++ b/src/Umbraco.Tests/Packaging/CreatedPackagesRepositoryTests.cs @@ -39,7 +39,7 @@ namespace Umbraco.Tests.Packaging ServiceContext.ContentService, ServiceContext.ContentTypeService, ServiceContext.DataTypeService, ServiceContext.FileService, ServiceContext.MacroService, ServiceContext.LocalizationService, HostingEnvironment, - Factory.GetInstance(), Logger, + Factory.GetInstance(), LoggerFactory_, UmbracoVersion, Microsoft.Extensions.Options.Options.Create(new GlobalSettingsBuilder().Build()), "createdPackages.config", diff --git a/src/Umbraco.Tests/Services/LocalizedTextServiceTests.cs b/src/Umbraco.Tests/Services/LocalizedTextServiceTests.cs index 2217028c64..4aba5384b6 100644 --- a/src/Umbraco.Tests/Services/LocalizedTextServiceTests.cs +++ b/src/Umbraco.Tests/Services/LocalizedTextServiceTests.cs @@ -5,17 +5,20 @@ using System.Linq; using System.Text; using System.Threading.Tasks; using System.Xml.Linq; +using Microsoft.Extensions.Logging; +using Microsoft.Extensions.Logging.Abstractions; using Moq; using NUnit.Framework; -using Umbraco.Core.Logging; using Umbraco.Core.Services; using Umbraco.Core.Services.Implement; +using ILogger = Umbraco.Core.Logging.ILogger; namespace Umbraco.Tests.Services { [TestFixture] public class LocalizedTextServiceTests { + private static ILoggerFactory _loggerFactory = NullLoggerFactory.Instance; [Test] public void Using_Dictionary_Gets_All_Stored_Values() { @@ -42,7 +45,7 @@ namespace Umbraco.Tests.Services }, } } - }, Mock.Of()); + }, _loggerFactory.CreateLogger()); var result = txtService.GetAllStoredValues(culture); @@ -74,7 +77,7 @@ namespace Umbraco.Tests.Services new XElement("key", new XAttribute("alias", "blah1"), "blahValue1"), new XElement("key", new XAttribute("alias", "blah2"), "blahValue2"))))) } - }, Mock.Of()); + }, _loggerFactory.CreateLogger()); var result = txtService.GetAllStoredValues(culture); @@ -105,7 +108,7 @@ namespace Umbraco.Tests.Services new XElement("key", new XAttribute("alias", "testKey1"), "testValue1"), new XElement("key", new XAttribute("alias", "testKey1"), "testValue1"))))) } - }, Mock.Of()); + }, _loggerFactory.CreateLogger()); var result = txtService.GetAllStoredValues(culture); @@ -131,7 +134,7 @@ namespace Umbraco.Tests.Services } } } - }, Mock.Of()); + }, _loggerFactory.CreateLogger()); var result = txtService.Localize("testArea/testKey", culture); @@ -156,7 +159,7 @@ namespace Umbraco.Tests.Services } } } - }, Mock.Of()); + }, _loggerFactory.CreateLogger()); var result = txtService.Localize("testKey", culture); @@ -181,7 +184,7 @@ namespace Umbraco.Tests.Services } } } - }, Mock.Of()); + }, _loggerFactory.CreateLogger()); var result = txtService.Localize("testArea/doNotFind", culture); @@ -207,7 +210,7 @@ namespace Umbraco.Tests.Services } } } - }, Mock.Of()); + }, _loggerFactory.CreateLogger()); var result = txtService.Localize("doNotFind", culture); @@ -232,7 +235,7 @@ namespace Umbraco.Tests.Services } } } - }, Mock.Of()); + }, _loggerFactory.CreateLogger()); var result = txtService.Localize("testKey", culture, new Dictionary { { "0", "world" }, { "1", "great" }, { "2", "planet" } }); @@ -253,7 +256,7 @@ namespace Umbraco.Tests.Services new XElement("key", new XAttribute("alias", "testKey"), "testValue")))) } - }, Mock.Of()); + }, _loggerFactory.CreateLogger()); var result = txtService.Localize("testArea/testKey", culture); @@ -273,7 +276,7 @@ namespace Umbraco.Tests.Services new XElement("key", new XAttribute("alias", "testKey"), "testValue")))) } - }, Mock.Of()); + }, _loggerFactory.CreateLogger()); var result = txtService.Localize("testKey", culture); @@ -293,7 +296,7 @@ namespace Umbraco.Tests.Services new XElement("key", new XAttribute("alias", "testKey"), "testValue")))) } - }, Mock.Of()); + }, _loggerFactory.CreateLogger()); var result = txtService.Localize("testArea/doNotFind", culture); @@ -314,7 +317,7 @@ namespace Umbraco.Tests.Services new XElement("key", new XAttribute("alias", "testKey"), "testValue")))) } - }, Mock.Of()); + }, _loggerFactory.CreateLogger()); var result = txtService.Localize("doNotFind", culture); @@ -334,7 +337,7 @@ namespace Umbraco.Tests.Services new XElement("key", new XAttribute("alias", "testKey"), "Hello %0%, you are such a %1% %2%")))) } - }, Mock.Of()); + }, _loggerFactory.CreateLogger()); var result = txtService.Localize("testKey", culture, new Dictionary { { "0", "world" }, { "1", "great" }, { "2", "planet" } }); @@ -360,7 +363,7 @@ namespace Umbraco.Tests.Services } } } - }, Mock.Of()); + }, _loggerFactory.CreateLogger()); Assert.AreEqual("[testKey]", txtService.Localize("testArea/testKey", CultureInfo.GetCultureInfo("en-AU"))); } @@ -378,7 +381,7 @@ namespace Umbraco.Tests.Services new XElement("key", new XAttribute("alias", "testKey"), "testValue")))) } - }, Mock.Of()); + }, _loggerFactory.CreateLogger()); Assert.AreEqual("[testKey]", txtService.Localize("testArea/testKey", CultureInfo.GetCultureInfo("en-AU"))); } diff --git a/src/Umbraco.Tests/Testing/UmbracoTestBase.cs b/src/Umbraco.Tests/Testing/UmbracoTestBase.cs index bfde408c63..821b72f4d8 100644 --- a/src/Umbraco.Tests/Testing/UmbracoTestBase.cs +++ b/src/Umbraco.Tests/Testing/UmbracoTestBase.cs @@ -175,22 +175,22 @@ namespace Umbraco.Tests.Testing // FIXME: align to runtimes & components - don't redo everything here !!!! Yes this is getting painful var (logger, profiler) = GetLoggers(Options.Logger); - var loggerFactoy = GetLoggerFactory(Options.Logger); - var msLogger = loggerFactoy.CreateLogger("msLogger"); - var proflogger = new ProfilingLogger(loggerFactoy.CreateLogger("ProfilingLogger"), profiler); + var loggerFactory = GetLoggerFactory(Options.Logger); + var msLogger = loggerFactory.CreateLogger("msLogger"); + var proflogger = new ProfilingLogger(loggerFactory.CreateLogger("ProfilingLogger"), profiler); IOHelper = TestHelper.IOHelper; - TypeFinder = new TypeFinder(loggerFactoy.CreateLogger(), new DefaultUmbracoAssemblyProvider(GetType().Assembly), new VaryingRuntimeHash()); + TypeFinder = new TypeFinder(loggerFactory.CreateLogger(), new DefaultUmbracoAssemblyProvider(GetType().Assembly), new VaryingRuntimeHash()); var appCaches = GetAppCaches(); var globalSettings = new GlobalSettingsBuilder().Build(); var settings = new WebRoutingSettings(); - IBackOfficeInfo backOfficeInfo = new AspNetBackOfficeInfo(globalSettings, IOHelper, loggerFactoy.CreateLogger(), Microsoft.Extensions.Options.Options.Create(settings)); + IBackOfficeInfo backOfficeInfo = new AspNetBackOfficeInfo(globalSettings, IOHelper, loggerFactory.CreateLogger(), Microsoft.Extensions.Options.Options.Create(settings)); IIpResolver ipResolver = new AspNetIpResolver(); UmbracoVersion = new UmbracoVersion(); - LocalizedTextService = new LocalizedTextService(new Dictionary>(), logger); + LocalizedTextService = new LocalizedTextService(new Dictionary>(), loggerFactory.CreateLogger()); var typeLoader = GetTypeLoader(IOHelper, TypeFinder, appCaches.RuntimeCache, HostingEnvironment, msLogger, proflogger, Options.TypeLoader); var register = TestHelper.GetRegister();