From 3551d6e65ec1c831cb02ed4c759b97d41d169a53 Mon Sep 17 00:00:00 2001 From: Bjarke Berg Date: Tue, 6 Oct 2020 21:23:15 +0200 Subject: [PATCH] Clean up and fixed todos Signed-off-by: Bjarke Berg --- .../Runtime/CoreRuntime.cs | 5 +-- src/Umbraco.Tests.Integration/RuntimeTests.cs | 2 +- .../UmbracoBuilderExtensions.cs | 5 +-- .../Testing/UmbracoIntegrationTest.cs | 6 +-- .../Umbraco.Core/Composing/TypeFinderTests.cs | 7 --- .../Migrations/AdvancedMigrationTests.cs | 2 +- src/Umbraco.Tests/Models/ContentTests.cs | 8 +--- .../NPocoTests/NPocoBulkInsertTests.cs | 3 +- .../Routing/RenderRouteHandlerTests.cs | 2 +- .../Runtimes/CoreRuntimeTests.cs | 24 +++------- src/Umbraco.Tests/Runtimes/StandaloneTests.cs | 4 +- .../Scheduling/BackgroundTaskRunnerTests2.cs | 3 +- .../Scoping/ScopeEventDispatcherTests.cs | 18 ++++---- .../Services/ContentServicePerformanceTest.cs | 5 ++- .../Services/PerformanceTests.cs | 8 +--- .../UmbracoCoreServiceCollectionExtensions.cs | 44 +++++++------------ .../Editors/AuthenticationController.cs | 6 +-- src/Umbraco.Web/Security/MembershipHelper.cs | 2 +- src/Umbraco.Web/UmbracoApplication.cs | 2 +- 19 files changed, 58 insertions(+), 98 deletions(-) diff --git a/src/Umbraco.Infrastructure/Runtime/CoreRuntime.cs b/src/Umbraco.Infrastructure/Runtime/CoreRuntime.cs index a732fe265a..4f921aa0c7 100644 --- a/src/Umbraco.Infrastructure/Runtime/CoreRuntime.cs +++ b/src/Umbraco.Infrastructure/Runtime/CoreRuntime.cs @@ -38,7 +38,6 @@ namespace Umbraco.Core.Runtime ConnectionStrings connectionStrings, IUmbracoVersion umbracoVersion, IIOHelper ioHelper, - ILogger logger, ILoggerFactory loggerFactory, IProfiler profiler, IUmbracoBootPermissionChecker umbracoBootPermissionChecker, @@ -63,7 +62,7 @@ namespace Umbraco.Core.Runtime RuntimeLoggerFactory = loggerFactory; _umbracoBootPermissionChecker = umbracoBootPermissionChecker; - Logger = logger; + Logger = loggerFactory.CreateLogger(); MainDom = mainDom; TypeFinder = typeFinder; @@ -75,7 +74,7 @@ namespace Umbraco.Core.Runtime /// /// Gets the logger. /// - public ILogger Logger { get; } + private ILogger Logger { get; } public ILoggerFactory RuntimeLoggerFactory { get; } diff --git a/src/Umbraco.Tests.Integration/RuntimeTests.cs b/src/Umbraco.Tests.Integration/RuntimeTests.cs index 3bfaab8c07..87b1bdd198 100644 --- a/src/Umbraco.Tests.Integration/RuntimeTests.cs +++ b/src/Umbraco.Tests.Integration/RuntimeTests.cs @@ -58,7 +58,7 @@ namespace Umbraco.Tests.Integration // Create the core runtime var coreRuntime = new CoreRuntime(globalSettings, connectionStrings, testHelper.GetUmbracoVersion(), - testHelper.IOHelper, testHelper.ConsoleLoggerFactory.CreateLogger("CoreRunTime"), testHelper.ConsoleLoggerFactory, testHelper.Profiler, testHelper.UmbracoBootPermissionChecker, + testHelper.IOHelper, testHelper.ConsoleLoggerFactory, testHelper.Profiler, testHelper.UmbracoBootPermissionChecker, testHelper.GetHostingEnvironment(), testHelper.GetBackOfficeInfo(), testHelper.DbProviderFactoryCreator, testHelper.MainDom, testHelper.GetTypeFinder(), AppCaches.NoCache); diff --git a/src/Umbraco.Tests.Integration/TestServerTest/UmbracoBuilderExtensions.cs b/src/Umbraco.Tests.Integration/TestServerTest/UmbracoBuilderExtensions.cs index d5cff21f7d..f7e451b03f 100644 --- a/src/Umbraco.Tests.Integration/TestServerTest/UmbracoBuilderExtensions.cs +++ b/src/Umbraco.Tests.Integration/TestServerTest/UmbracoBuilderExtensions.cs @@ -32,15 +32,14 @@ namespace Umbraco.Tests.Integration.TestServerTest testHelper.GetLoggingConfiguration(), builder.Config, // TODO: Yep that's extremely ugly - (globalSettings, connectionStrings, umbVersion, ioHelper, logger, factory, profiler, hostingEnv, backOfficeInfo, typeFinder, appCaches, dbProviderFactoryCreator) => + (globalSettings, connectionStrings, umbVersion, ioHelper, loggerFactory, profiler, hostingEnv, backOfficeInfo, typeFinder, appCaches, dbProviderFactoryCreator) => { var runtime = UmbracoIntegrationTest.CreateTestRuntime( globalSettings, connectionStrings, umbVersion, ioHelper, - logger, - factory, + loggerFactory, profiler, hostingEnv, backOfficeInfo, diff --git a/src/Umbraco.Tests.Integration/Testing/UmbracoIntegrationTest.cs b/src/Umbraco.Tests.Integration/Testing/UmbracoIntegrationTest.cs index 30b5545aa3..36df0bbc64 100644 --- a/src/Umbraco.Tests.Integration/Testing/UmbracoIntegrationTest.cs +++ b/src/Umbraco.Tests.Integration/Testing/UmbracoIntegrationTest.cs @@ -170,7 +170,7 @@ namespace Umbraco.Tests.Integration.Testing GlobalSettings globalSettings, ConnectionStrings connectionStrings, IUmbracoVersion umbracoVersion, IIOHelper ioHelper, - ILogger logger, ILoggerFactory loggerFactory, IProfiler profiler, Core.Hosting.IHostingEnvironment hostingEnvironment, IBackOfficeInfo backOfficeInfo, + ILoggerFactory loggerFactory, IProfiler profiler, Core.Hosting.IHostingEnvironment hostingEnvironment, IBackOfficeInfo backOfficeInfo, ITypeFinder typeFinder, AppCaches appCaches, IDbProviderFactoryCreator dbProviderFactoryCreator) { var runtime = CreateTestRuntime( @@ -178,7 +178,6 @@ namespace Umbraco.Tests.Integration.Testing connectionStrings, umbracoVersion, ioHelper, - logger, loggerFactory, profiler, hostingEnvironment, @@ -215,7 +214,7 @@ namespace Umbraco.Tests.Integration.Testing GlobalSettings globalSettings, ConnectionStrings connectionStrings, IUmbracoVersion umbracoVersion, IIOHelper ioHelper, - ILogger logger, ILoggerFactory loggerFactory, IProfiler profiler, Core.Hosting.IHostingEnvironment hostingEnvironment, IBackOfficeInfo backOfficeInfo, + ILoggerFactory loggerFactory, IProfiler profiler, Core.Hosting.IHostingEnvironment hostingEnvironment, IBackOfficeInfo backOfficeInfo, ITypeFinder typeFinder, AppCaches appCaches, IDbProviderFactoryCreator dbProviderFactoryCreator, IMainDom mainDom, Action eventHandler) { @@ -224,7 +223,6 @@ namespace Umbraco.Tests.Integration.Testing connectionStrings, umbracoVersion, ioHelper, - logger, loggerFactory, profiler, Mock.Of(), diff --git a/src/Umbraco.Tests.UnitTests/Umbraco.Core/Composing/TypeFinderTests.cs b/src/Umbraco.Tests.UnitTests/Umbraco.Core/Composing/TypeFinderTests.cs index bbc4330843..b8e391a072 100644 --- a/src/Umbraco.Tests.UnitTests/Umbraco.Core/Composing/TypeFinderTests.cs +++ b/src/Umbraco.Tests.UnitTests/Umbraco.Core/Composing/TypeFinderTests.cs @@ -60,13 +60,6 @@ namespace Umbraco.Tests.Composing Assert.AreEqual(22, typesFound.Count()); // + classes in Umbraco.Web are marked with [Tree] } - private static IProfilingLogger GetTestProfilingLogger() - { - var logger = LoggerFactory.Create(builder => builder.AddDebug()).CreateLogger("ProfilingLogger"); - var profiler = new TestProfiler(); - return new ProfilingLogger(logger, profiler); - } - [AttributeUsage(AttributeTargets.Class, AllowMultiple = false)] public class MyTestAttribute : Attribute { diff --git a/src/Umbraco.Tests/Migrations/AdvancedMigrationTests.cs b/src/Umbraco.Tests/Migrations/AdvancedMigrationTests.cs index 8c31f3adaf..474528a8ec 100644 --- a/src/Umbraco.Tests/Migrations/AdvancedMigrationTests.cs +++ b/src/Umbraco.Tests/Migrations/AdvancedMigrationTests.cs @@ -21,7 +21,7 @@ namespace Umbraco.Tests.Migrations [UmbracoTest(Database = UmbracoTestOptions.Database.NewEmptyPerTest)] public class AdvancedMigrationTests : TestWithDatabaseBase { - private ILoggerFactory _loggerFactory = Microsoft.Extensions.Logging.LoggerFactory.Create(builder => builder.AddDebug()); + private ILoggerFactory _loggerFactory = NullLoggerFactory.Instance; [Test] public void CreateTableOfTDto() diff --git a/src/Umbraco.Tests/Models/ContentTests.cs b/src/Umbraco.Tests/Models/ContentTests.cs index 737323b98e..8fb3f60cc8 100644 --- a/src/Umbraco.Tests/Models/ContentTests.cs +++ b/src/Umbraco.Tests/Models/ContentTests.cs @@ -4,18 +4,13 @@ using System.Diagnostics; using System.Globalization; using System.Linq; using System.Threading; -using Microsoft.CodeAnalysis.Options; -using Microsoft.Extensions.Options; -using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging.Abstractions; using Moq; using Newtonsoft.Json; using Umbraco.Core; using NUnit.Framework; using Umbraco.Core.Cache; -using Umbraco.Core.Composing; using Umbraco.Core.Composing.CompositionExtensions; -using Umbraco.Core.Configuration.UmbracoSettings; using Umbraco.Core.Logging; using Umbraco.Core.Models; using Umbraco.Core.Models.Entities; @@ -26,7 +21,6 @@ using Umbraco.Tests.TestHelpers.Entities; using Umbraco.Tests.TestHelpers.Stubs; using Umbraco.Tests.Testing; using Umbraco.Web.PropertyEditors; -using Umbraco.Tests.TestHelpers; namespace Umbraco.Tests.Models { @@ -239,7 +233,7 @@ namespace Umbraco.Tests.Models private static IProfilingLogger GetTestProfilingLogger() { - var logger = Microsoft.Extensions.Logging.LoggerFactory.Create(builder => builder.AddDebug()).CreateLogger("ProfilingLogger"); + var logger = NullLoggerFactory.Instance.CreateLogger("ProfilingLogger"); var profiler = new TestProfiler(); return new ProfilingLogger(logger, profiler); } diff --git a/src/Umbraco.Tests/Persistence/NPocoTests/NPocoBulkInsertTests.cs b/src/Umbraco.Tests/Persistence/NPocoTests/NPocoBulkInsertTests.cs index a034b94ae0..5a0e4b6ed2 100644 --- a/src/Umbraco.Tests/Persistence/NPocoTests/NPocoBulkInsertTests.cs +++ b/src/Umbraco.Tests/Persistence/NPocoTests/NPocoBulkInsertTests.cs @@ -4,6 +4,7 @@ using System.Data; using System.Linq; using System.Text.RegularExpressions; using Microsoft.Extensions.Logging; +using Microsoft.Extensions.Logging.Abstractions; using NUnit.Framework; using Umbraco.Core.Persistence; using Umbraco.Core.Persistence.Dtos; @@ -27,7 +28,7 @@ namespace Umbraco.Tests.Persistence.NPocoTests // create the db // prob not what we want, this is not a real database, but hey, the test is ignored anyways // we'll fix this when we have proper testing infrastructure - var dbSqlServer = TestObjects.GetUmbracoSqlServerDatabase(Microsoft.Extensions.Logging.LoggerFactory.Create(builder => builder.AddDebug()).CreateLogger()); + var dbSqlServer = TestObjects.GetUmbracoSqlServerDatabase(new NullLogger()); //drop the table dbSqlServer.Execute("DROP TABLE [umbracoServer]"); diff --git a/src/Umbraco.Tests/Routing/RenderRouteHandlerTests.cs b/src/Umbraco.Tests/Routing/RenderRouteHandlerTests.cs index 9b930133cc..2262499347 100644 --- a/src/Umbraco.Tests/Routing/RenderRouteHandlerTests.cs +++ b/src/Umbraco.Tests/Routing/RenderRouteHandlerTests.cs @@ -55,7 +55,7 @@ namespace Umbraco.Tests.Routing public class TestRuntime : CoreRuntime { public TestRuntime(GlobalSettings globalSettings, ConnectionStrings connectionStrings, IUmbracoVersion umbracoVersion, IIOHelper ioHelper, IHostingEnvironment hostingEnvironment, IBackOfficeInfo backOfficeInfo) - : base(globalSettings, connectionStrings,umbracoVersion, ioHelper, Mock.Of(), NullLoggerFactory.Instance, Mock.Of(), new AspNetUmbracoBootPermissionChecker(), hostingEnvironment, backOfficeInfo, TestHelper.DbProviderFactoryCreator, TestHelper.MainDom, TestHelper.GetTypeFinder(), AppCaches.NoCache) + : base(globalSettings, connectionStrings,umbracoVersion, ioHelper, NullLoggerFactory.Instance, Mock.Of(), new AspNetUmbracoBootPermissionChecker(), hostingEnvironment, backOfficeInfo, TestHelper.DbProviderFactoryCreator, TestHelper.MainDom, TestHelper.GetTypeFinder(), AppCaches.NoCache) { } diff --git a/src/Umbraco.Tests/Runtimes/CoreRuntimeTests.cs b/src/Umbraco.Tests/Runtimes/CoreRuntimeTests.cs index b269258920..ea111a1e29 100644 --- a/src/Umbraco.Tests/Runtimes/CoreRuntimeTests.cs +++ b/src/Umbraco.Tests/Runtimes/CoreRuntimeTests.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using Examine; using Microsoft.Extensions.Options; using Microsoft.Extensions.Logging; +using Microsoft.Extensions.Logging.Abstractions; using Moq; using NUnit.Framework; using Umbraco.Core; @@ -83,28 +84,15 @@ namespace Umbraco.Tests.Runtimes // test application public class TestUmbracoApplication : UmbracoApplicationBase { - public TestUmbracoApplication() : base(CreateLoggerFactory().CreateLogger(), - CreateLoggerFactory(), + public TestUmbracoApplication() : base(new NullLogger(), + NullLoggerFactory.Instance, new SecuritySettings(), new GlobalSettings(), new ConnectionStrings(), - _ioHelper, _profiler, new AspNetHostingEnvironment(Options.Create(new HostingSettings())), new AspNetBackOfficeInfo(_globalSettings, _ioHelper, CreateLoggerFactory().CreateLogger(), Options.Create(new WebRoutingSettings()))) + _ioHelper, _profiler, new AspNetHostingEnvironment(Options.Create(new HostingSettings())), new AspNetBackOfficeInfo(_globalSettings, _ioHelper, new NullLogger(), Options.Create(new WebRoutingSettings()))) { - _loggerFactory = CreateLoggerFactory(); } - // Since we can't pass ILoggerFactory before it's created this will take care of it. - private static ILoggerFactory CreateLoggerFactory() - { - if (_loggerFactory is null) - { - _loggerFactory = LoggerFactory.Create(builder => builder.AddDebug()); - } - - return _loggerFactory; - } - - private static ILoggerFactory _loggerFactory; private static readonly IIOHelper _ioHelper = TestHelper.IOHelper; private static readonly IProfiler _profiler = new TestProfiler(); private static readonly GlobalSettings _globalSettings = new GlobalSettings(); @@ -121,7 +109,7 @@ namespace Umbraco.Tests.Runtimes public class TestRuntime : CoreRuntime { public TestRuntime(GlobalSettings globalSettings, ConnectionStrings connectionStrings, IUmbracoVersion umbracoVersion, IIOHelper ioHelper, ILogger logger, ILoggerFactory loggerFactory, IProfiler profiler, IHostingEnvironment hostingEnvironment, IBackOfficeInfo backOfficeInfo) - :base(globalSettings, connectionStrings,umbracoVersion, ioHelper, logger, loggerFactory, profiler, new AspNetUmbracoBootPermissionChecker(), hostingEnvironment, backOfficeInfo, TestHelper.DbProviderFactoryCreator, TestHelper.MainDom, TestHelper.GetTypeFinder(), AppCaches.NoCache) + :base(globalSettings, connectionStrings,umbracoVersion, ioHelper, loggerFactory, profiler, new AspNetUmbracoBootPermissionChecker(), hostingEnvironment, backOfficeInfo, TestHelper.DbProviderFactoryCreator, TestHelper.MainDom, TestHelper.GetTypeFinder(), AppCaches.NoCache) { } @@ -141,7 +129,7 @@ namespace Umbraco.Tests.Runtimes container.Register(Lifetime.Singleton); container.Register(Lifetime.Singleton); container.Register(typeof(ILogger<>), typeof(Logger<>), Lifetime.Singleton); - + var factory = base.Configure(container); return factory; diff --git a/src/Umbraco.Tests/Runtimes/StandaloneTests.cs b/src/Umbraco.Tests/Runtimes/StandaloneTests.cs index cba561ac62..e5594a0778 100644 --- a/src/Umbraco.Tests/Runtimes/StandaloneTests.cs +++ b/src/Umbraco.Tests/Runtimes/StandaloneTests.cs @@ -86,7 +86,7 @@ namespace Umbraco.Tests.Runtimes composition.RegisterEssentials(loggerFactory.CreateLogger("Essentials"), loggerFactory, profiler, profilingLogger, mainDom, appCaches, databaseFactory, typeLoader, runtimeState, typeFinder, ioHelper, umbracoVersion, TestHelper.DbProviderFactoryCreator, hostingEnvironment, backOfficeInfo); // create the core runtime and have it compose itself - var coreRuntime = new CoreRuntime(globalSettings, connectionStrings, umbracoVersion, ioHelper, loggerFactory.CreateLogger("CoreRunTime"), loggerFactory, profiler, new AspNetUmbracoBootPermissionChecker(), hostingEnvironment, backOfficeInfo, TestHelper.DbProviderFactoryCreator, TestHelper.MainDom, typeFinder, AppCaches.NoCache); + var coreRuntime = new CoreRuntime(globalSettings, connectionStrings, umbracoVersion, ioHelper, loggerFactory, profiler, new AspNetUmbracoBootPermissionChecker(), hostingEnvironment, backOfficeInfo, TestHelper.DbProviderFactoryCreator, TestHelper.MainDom, typeFinder, AppCaches.NoCache); // determine actual runtime level runtimeState.DetermineRuntimeLevel(); @@ -297,7 +297,7 @@ namespace Umbraco.Tests.Runtimes var globalSettings = new GlobalSettings(); var connectionStrings = new ConnectionStrings(); - var coreRuntime = new CoreRuntime(globalSettings, connectionStrings, umbracoVersion, ioHelper, loggerFactory.CreateLogger("CoreRuntime"), loggerFactory, profiler, new AspNetUmbracoBootPermissionChecker(), hostingEnvironment, backOfficeInfo, TestHelper.DbProviderFactoryCreator, TestHelper.MainDom, typeFinder, AppCaches.NoCache); + var coreRuntime = new CoreRuntime(globalSettings, connectionStrings, umbracoVersion, ioHelper, loggerFactory, profiler, new AspNetUmbracoBootPermissionChecker(), hostingEnvironment, backOfficeInfo, TestHelper.DbProviderFactoryCreator, TestHelper.MainDom, typeFinder, AppCaches.NoCache); // get the components // all of them? diff --git a/src/Umbraco.Tests/Scheduling/BackgroundTaskRunnerTests2.cs b/src/Umbraco.Tests/Scheduling/BackgroundTaskRunnerTests2.cs index c132111e72..c2860b57d0 100644 --- a/src/Umbraco.Tests/Scheduling/BackgroundTaskRunnerTests2.cs +++ b/src/Umbraco.Tests/Scheduling/BackgroundTaskRunnerTests2.cs @@ -3,6 +3,7 @@ using System.Diagnostics; using System.Threading; using System.Threading.Tasks; using Microsoft.Extensions.Logging; +using Microsoft.Extensions.Logging.Abstractions; using NUnit.Framework; using Umbraco.Tests.TestHelpers; using Umbraco.Web.Scheduling; @@ -13,7 +14,7 @@ namespace Umbraco.Tests.Scheduling [Timeout(60000)] public class BackgroundTaskRunnerTests2 { - private static ILoggerFactory _loggerFactory = LoggerFactory.Create(builder => builder.AddDebug()); + private static ILoggerFactory _loggerFactory = NullLoggerFactory.Instance; // this tests was used to debug a background task runner issue that was unearthed by Deploy, // where work items would never complete under certain circumstances, due to threading issues. // (fixed now) diff --git a/src/Umbraco.Tests/Scoping/ScopeEventDispatcherTests.cs b/src/Umbraco.Tests/Scoping/ScopeEventDispatcherTests.cs index 2bf4811f5d..ebfb9da8b3 100644 --- a/src/Umbraco.Tests/Scoping/ScopeEventDispatcherTests.cs +++ b/src/Umbraco.Tests/Scoping/ScopeEventDispatcherTests.cs @@ -70,7 +70,7 @@ namespace Umbraco.Tests.Scoping DoThing1 += (sender, args) => { counter1++; if (cancel) args.Cancel = true; }; DoThing2 += (sender, args) => { counter2++; }; - var scopeProvider = _testObjects.GetScopeProvider(new NullLoggerFactory()); + var scopeProvider = _testObjects.GetScopeProvider(NullLoggerFactory.Instance); using (var scope = scopeProvider.CreateScope(eventDispatcher: passive ? new PassiveEventDispatcher() : null)) { var cancelled = scope.Events.DispatchCancelable(DoThing1, this, new SaveEventArgs("test")); @@ -99,7 +99,7 @@ namespace Umbraco.Tests.Scoping DoThing2 += OnDoThingFail; DoThing3 += OnDoThingFail; - var scopeProvider = _testObjects.GetScopeProvider(new NullLoggerFactory()); + var scopeProvider = _testObjects.GetScopeProvider(NullLoggerFactory.Instance); using (var scope = scopeProvider.CreateScope(eventDispatcher: new PassiveEventDispatcher())) { scope.Events.Dispatch(DoThing1, this, new SaveEventArgs("test")); @@ -141,7 +141,7 @@ namespace Umbraco.Tests.Scoping var content3 = MockedContent.CreateBasicContent(contentType); content3.Id = 789; - var scopeProvider = _testObjects.GetScopeProvider(new NullLoggerFactory()); + var scopeProvider = _testObjects.GetScopeProvider(NullLoggerFactory.Instance); using (var scope = scopeProvider.CreateScope(eventDispatcher: new PassiveEventDispatcher())) { @@ -180,7 +180,7 @@ namespace Umbraco.Tests.Scoping var contentService = Mock.Of(); var content = Mock.Of(); - var scopeProvider = _testObjects.GetScopeProvider(new NullLoggerFactory()); + var scopeProvider = _testObjects.GetScopeProvider(NullLoggerFactory.Instance); using (var scope = scopeProvider.CreateScope(eventDispatcher: new PassiveEventDispatcher())) { scope.Events.Dispatch(Test_Unpublished, contentService, new PublishEventArgs(new [] { content }), "Unpublished"); @@ -214,7 +214,7 @@ namespace Umbraco.Tests.Scoping content3.Id = 123; content3.UpdateDate = now.AddMinutes(3); - var scopeProvider = _testObjects.GetScopeProvider(new NullLoggerFactory()); + var scopeProvider = _testObjects.GetScopeProvider(NullLoggerFactory.Instance); using (var scope = scopeProvider.CreateScope(eventDispatcher: new PassiveEventDispatcher())) { scope.Events.Dispatch(DoSaveForContent, this, new SaveEventArgs(content1)); @@ -254,7 +254,7 @@ namespace Umbraco.Tests.Scoping content3.Id = 123; content1.UpdateDate = now.AddMinutes(3); - var scopeProvider = _testObjects.GetScopeProvider(new NullLoggerFactory()); + var scopeProvider = _testObjects.GetScopeProvider(NullLoggerFactory.Instance); using (var scope = scopeProvider.CreateScope(eventDispatcher: new PassiveEventDispatcher())) { scope.Events.Dispatch(DoSaveForContent, this, new SaveEventArgs(content1)); @@ -287,7 +287,7 @@ namespace Umbraco.Tests.Scoping content3.Id = 123; content3.UpdateDate = now.AddMinutes(3); - var scopeProvider = _testObjects.GetScopeProvider(new NullLoggerFactory()); + var scopeProvider = _testObjects.GetScopeProvider(NullLoggerFactory.Instance); using (var scope = scopeProvider.CreateScope(eventDispatcher: new PassiveEventDispatcher())) { scope.Events.Dispatch(DoSaveForContent, this, new SaveEventArgs(content1)); @@ -311,7 +311,7 @@ namespace Umbraco.Tests.Scoping DoThing2 += OnDoThingFail; DoThing3 += OnDoThingFail; - var scopeProvider = _testObjects.GetScopeProvider(new NullLoggerFactory()); + var scopeProvider = _testObjects.GetScopeProvider(NullLoggerFactory.Instance); using (var scope = scopeProvider.CreateScope(eventDispatcher: new PassiveEventDispatcher())) { scope.Events.Dispatch(DoThing1, this, new SaveEventArgs("test")); @@ -337,7 +337,7 @@ namespace Umbraco.Tests.Scoping IScopeContext ambientContext = null; Guid value = Guid.Empty; - var scopeProvider = _testObjects.GetScopeProvider(new NullLoggerFactory()) as ScopeProvider; + var scopeProvider = _testObjects.GetScopeProvider(NullLoggerFactory.Instance) as ScopeProvider; DoThing1 += (sender, args) => { counter++; }; DoThing2 += (sender, args) => { counter++; }; diff --git a/src/Umbraco.Tests/Services/ContentServicePerformanceTest.cs b/src/Umbraco.Tests/Services/ContentServicePerformanceTest.cs index 81b82a66ec..9ed1271de0 100644 --- a/src/Umbraco.Tests/Services/ContentServicePerformanceTest.cs +++ b/src/Umbraco.Tests/Services/ContentServicePerformanceTest.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.Diagnostics; using System.Linq; using Microsoft.Extensions.Logging; +using Microsoft.Extensions.Logging.Abstractions; using NUnit.Framework; using Umbraco.Core; using Umbraco.Core.Cache; @@ -63,9 +64,9 @@ namespace Umbraco.Tests.Services private static IProfilingLogger GetTestProfilingLogger() { - var logger = Microsoft.Extensions.Logging.LoggerFactory.Create(builder => builder.AddDebug()).CreateLogger("ProfilingLogger"); + var profiler = new TestProfiler(); - return new ProfilingLogger(logger, profiler); + return new ProfilingLogger(new NullLogger(), profiler); } [Test] diff --git a/src/Umbraco.Tests/Services/PerformanceTests.cs b/src/Umbraco.Tests/Services/PerformanceTests.cs index fcaa083fb7..da33685bdd 100644 --- a/src/Umbraco.Tests/Services/PerformanceTests.cs +++ b/src/Umbraco.Tests/Services/PerformanceTests.cs @@ -3,8 +3,7 @@ using System.Collections.Generic; using System.Globalization; using System.Linq; using System.Threading; -using Microsoft.Extensions.Logging; -using NPoco; +using Microsoft.Extensions.Logging.Abstractions; using NUnit.Framework; using Umbraco.Core; using Umbraco.Web.Composing; @@ -12,7 +11,6 @@ using Umbraco.Core.Logging; using Umbraco.Core.Models; using Umbraco.Core.Persistence; using Umbraco.Core.Persistence.Dtos; -using Umbraco.Core.Services; using Umbraco.Core.Services.Implement; using Umbraco.Tests.LegacyXmlPublishedCache; using Umbraco.Tests.TestHelpers; @@ -59,10 +57,8 @@ namespace Umbraco.Tests.Services private static IProfilingLogger GetTestProfilingLogger() { - var factory = Microsoft.Extensions.Logging.LoggerFactory.Create(builder => builder.AddDebug()); - var logger = factory.CreateLogger("ProfilingLogger"); var profiler = new TestProfiler(); - return new ProfilingLogger(logger, profiler); + return new ProfilingLogger(new NullLogger(), profiler); } [Test] diff --git a/src/Umbraco.Web.Common/Extensions/UmbracoCoreServiceCollectionExtensions.cs b/src/Umbraco.Web.Common/Extensions/UmbracoCoreServiceCollectionExtensions.cs index 607b07a748..1b3cde509a 100644 --- a/src/Umbraco.Web.Common/Extensions/UmbracoCoreServiceCollectionExtensions.cs +++ b/src/Umbraco.Web.Common/Extensions/UmbracoCoreServiceCollectionExtensions.cs @@ -233,7 +233,7 @@ namespace Umbraco.Extensions ILoggingConfiguration loggingConfiguration, IConfiguration configuration, //TODO: Yep that's extremely ugly - Func getRuntime, + Func getRuntime, out IFactory factory) { if (services is null) throw new ArgumentNullException(nameof(services)); @@ -273,8 +273,9 @@ namespace Umbraco.Extensions hostingSettings, webHostEnvironment, loggingConfiguration, - configuration, - out var logger, out var loggerFactory, out var ioHelper, out var hostingEnvironment, out var backOfficeInfo, out var profiler); + configuration, out var ioHelper, out var hostingEnvironment, out var backOfficeInfo, out var profiler); + + var loggerFactory = serviceProvider.GetService(); var umbracoVersion = new UmbracoVersion(); var typeFinder = CreateTypeFinder(loggerFactory, profiler, webHostEnvironment, entryAssembly, typeFinderSettings); @@ -284,7 +285,6 @@ namespace Umbraco.Extensions connectionStrings.Value, umbracoVersion, ioHelper, - logger, loggerFactory, profiler, hostingEnvironment, @@ -314,7 +314,7 @@ namespace Umbraco.Extensions } private static IRuntime GetCoreRuntime( - GlobalSettings globalSettings, ConnectionStrings connectionStrings, IUmbracoVersion umbracoVersion, IIOHelper ioHelper, ILogger logger, ILoggerFactory loggerFactory, + GlobalSettings globalSettings, ConnectionStrings connectionStrings, IUmbracoVersion umbracoVersion, IIOHelper ioHelper, ILoggerFactory loggerFactory, IProfiler profiler, IHostingEnvironment hostingEnvironment, IBackOfficeInfo backOfficeInfo, ITypeFinder typeFinder, AppCaches appCaches, IDbProviderFactoryCreator dbProviderFactoryCreator) { @@ -333,7 +333,6 @@ namespace Umbraco.Extensions connectionStrings, umbracoVersion, ioHelper, - logger, loggerFactory, profiler, new AspNetCoreBootPermissionsChecker(), @@ -354,8 +353,6 @@ namespace Umbraco.Extensions IWebHostEnvironment webHostEnvironment, ILoggingConfiguration loggingConfiguration, IConfiguration configuration, - out ILogger logger, - out ILoggerFactory loggerFactory, out IIOHelper ioHelper, out Core.Hosting.IHostingEnvironment hostingEnvironment, out IBackOfficeInfo backOfficeInfo, @@ -366,7 +363,7 @@ namespace Umbraco.Extensions hostingEnvironment = new AspNetCoreHostingEnvironment(hostingSettings, webHostEnvironment); ioHelper = new IOHelper(hostingEnvironment); - logger = AddLogger(services, hostingEnvironment, loggingConfiguration, configuration, out loggerFactory); + AddLogger(services, hostingEnvironment, loggingConfiguration, configuration); backOfficeInfo = new AspNetCoreBackOfficeInfo(globalSettings); profiler = GetWebProfiler(hostingEnvironment); @@ -377,12 +374,11 @@ namespace Umbraco.Extensions /// Create and configure the logger /// /// - private static ILogger AddLogger( + private static void AddLogger( IServiceCollection services, Core.Hosting.IHostingEnvironment hostingEnvironment, ILoggingConfiguration loggingConfiguration, - IConfiguration configuration, - out ILoggerFactory loggerFactory) + IConfiguration configuration) { // Create a serilog logger var logger = SerilogLogger.CreateWithDefaultConfiguration(hostingEnvironment, loggingConfiguration, configuration); @@ -402,23 +398,17 @@ namespace Umbraco.Extensions configure.AddSerilog(logger.SerilogLog, false); }); + // This won't (and shouldn't) take ownership of the logger. + services.AddSingleton(logger.SerilogLog); - //services.AddSingleton(services => new SerilogLoggerFactory(logger.SerilogLog, false)); + // Registered to provide two services... + var diagnosticContext = new DiagnosticContext(logger.SerilogLog); - // // This won't (and shouldn't) take ownership of the logger. - // services.AddSingleton(logger.SerilogLog); - // - // // Registered to provide two services... - // var diagnosticContext = new DiagnosticContext(logger.SerilogLog); - // - // // Consumed by e.g. middleware - // services.AddSingleton(diagnosticContext); - // - // // Consumed by user code - // services.AddSingleton(diagnosticContext); - var serviceProvider = services.BuildServiceProvider(); - loggerFactory = serviceProvider.GetRequiredService(); - return loggerFactory.CreateLogger("Global Logger"); + // Consumed by e.g. middleware + services.AddSingleton(diagnosticContext); + + // Consumed by user code + services.AddSingleton(diagnosticContext); } private static IProfiler GetWebProfiler(Umbraco.Core.Hosting.IHostingEnvironment hostingEnvironment) diff --git a/src/Umbraco.Web/Editors/AuthenticationController.cs b/src/Umbraco.Web/Editors/AuthenticationController.cs index e3d0c9c1d0..5265dc13cb 100644 --- a/src/Umbraco.Web/Editors/AuthenticationController.cs +++ b/src/Umbraco.Web/Editors/AuthenticationController.cs @@ -123,7 +123,7 @@ namespace Umbraco.Web.Editors var userId = await SignInManager.GetVerifiedUserIdAsync(); if (string.IsNullOrWhiteSpace(userId)) { - _logger.LogDebug("Get2FAProviders :: No verified user found, returning 404"); + _logger.LogWarning("Get2FAProviders :: No verified user found, returning 404"); throw new HttpResponseException(HttpStatusCode.NotFound); } @@ -142,7 +142,7 @@ namespace Umbraco.Web.Editors var userId = await SignInManager.GetVerifiedUserIdAsync(); if (string.IsNullOrWhiteSpace(userId)) { - _logger.LogDebug("Get2FAProviders :: No verified user found, returning 404"); + _logger.LogWarning("Get2FAProviders :: No verified user found, returning 404"); throw new HttpResponseException(HttpStatusCode.NotFound); } @@ -165,7 +165,7 @@ namespace Umbraco.Web.Editors var userName = await SignInManager.GetVerifiedUserNameAsync(); if (userName == null) { - _logger.LogDebug("Get2FAProviders :: No verified user found, returning 404"); + _logger.LogWarning("Get2FAProviders :: No verified user found, returning 404"); throw new HttpResponseException(HttpStatusCode.NotFound); } diff --git a/src/Umbraco.Web/Security/MembershipHelper.cs b/src/Umbraco.Web/Security/MembershipHelper.cs index 88c2f05308..1469b6fea6 100644 --- a/src/Umbraco.Web/Security/MembershipHelper.cs +++ b/src/Umbraco.Web/Security/MembershipHelper.cs @@ -307,7 +307,7 @@ namespace Umbraco.Web.Security if (member == null) { //this should not happen - Current.Logger.LogWarning("The member validated but then no member was returned with the username {Username}", username); + _logger.LogWarning("The member validated but then no member was returned with the username {Username}", username); return false; } //Log them in diff --git a/src/Umbraco.Web/UmbracoApplication.cs b/src/Umbraco.Web/UmbracoApplication.cs index 23a78a1bcd..8f6231b22a 100644 --- a/src/Umbraco.Web/UmbracoApplication.cs +++ b/src/Umbraco.Web/UmbracoApplication.cs @@ -41,7 +41,7 @@ namespace Umbraco.Web new IsolatedCaches(type => new DeepCloneAppCache(new ObjectCacheAppCache()))); var umbracoBootPermissionChecker = new AspNetUmbracoBootPermissionChecker(); - return new CoreRuntime(globalSettings, connectionStrings,umbracoVersion, ioHelper, logger, loggerFactory, profiler, umbracoBootPermissionChecker, hostingEnvironment, backOfficeInfo, dbProviderFactoryCreator, mainDom, + return new CoreRuntime(globalSettings, connectionStrings,umbracoVersion, ioHelper, loggerFactory, profiler, umbracoBootPermissionChecker, hostingEnvironment, backOfficeInfo, dbProviderFactoryCreator, mainDom, GetTypeFinder(hostingEnvironment, logger, profiler), appCaches); }