diff --git a/src/Umbraco.Core/Umbraco.Core.csproj b/src/Umbraco.Core/Umbraco.Core.csproj index a6716e5264..987855c932 100755 --- a/src/Umbraco.Core/Umbraco.Core.csproj +++ b/src/Umbraco.Core/Umbraco.Core.csproj @@ -129,19 +129,15 @@ - - - - @@ -155,35 +151,11 @@ - - - - - - - - - - - - - - - - - - - - - - - - @@ -222,8 +194,5 @@ Umbraco.Infrastructure - - - \ No newline at end of file diff --git a/src/Umbraco.Core/CompositionExtensions.cs b/src/Umbraco.Infrastructure/CompositionExtensions.cs similarity index 100% rename from src/Umbraco.Core/CompositionExtensions.cs rename to src/Umbraco.Infrastructure/CompositionExtensions.cs diff --git a/src/Umbraco.Core/CompositionExtensions_Essentials.cs b/src/Umbraco.Infrastructure/CompositionExtensions_Essentials.cs similarity index 100% rename from src/Umbraco.Core/CompositionExtensions_Essentials.cs rename to src/Umbraco.Infrastructure/CompositionExtensions_Essentials.cs diff --git a/src/Umbraco.Core/CompositionExtensions_FileSystems.cs b/src/Umbraco.Infrastructure/CompositionExtensions_FileSystems.cs similarity index 100% rename from src/Umbraco.Core/CompositionExtensions_FileSystems.cs rename to src/Umbraco.Infrastructure/CompositionExtensions_FileSystems.cs diff --git a/src/Umbraco.Infrastructure/Diagnostics/IMarchal.cs b/src/Umbraco.Infrastructure/Diagnostics/IMarchal.cs new file mode 100644 index 0000000000..30e6a9e619 --- /dev/null +++ b/src/Umbraco.Infrastructure/Diagnostics/IMarchal.cs @@ -0,0 +1,12 @@ +using System; + +namespace Umbraco.Core.Diagnostics +{ + /// + /// Provides a collection of methods for allocating unmanaged memory, copying unmanaged memory blocks, and converting managed to unmanaged types, as well as other miscellaneous methods used when interacting with unmanaged code. + /// + public interface IMarchal + { + IntPtr GetExceptionPointers(); + } +} diff --git a/src/Umbraco.Core/Diagnostics/MiniDump.cs b/src/Umbraco.Infrastructure/Diagnostics/MiniDump.cs similarity index 91% rename from src/Umbraco.Core/Diagnostics/MiniDump.cs rename to src/Umbraco.Infrastructure/Diagnostics/MiniDump.cs index 6534ad705c..9bc0b1c3fb 100644 --- a/src/Umbraco.Core/Diagnostics/MiniDump.cs +++ b/src/Umbraco.Infrastructure/Diagnostics/MiniDump.cs @@ -78,7 +78,7 @@ namespace Umbraco.Core.Diagnostics [DllImport("kernel32.dll", EntryPoint = "GetCurrentThreadId", ExactSpelling = true)] private static extern uint GetCurrentThreadId(); - private static bool Write(SafeHandle fileHandle, Option options, bool withException = false) + private static bool Write(IMarchal marchal, SafeHandle fileHandle, Option options, bool withException = false) { var currentProcess = Process.GetCurrentProcess(); var currentProcessHandle = currentProcess.Handle; @@ -91,7 +91,7 @@ namespace Umbraco.Core.Diagnostics exp.ExceptionPointers = IntPtr.Zero; if (withException) - exp.ExceptionPointers = Marshal.GetExceptionPointers(); + exp.ExceptionPointers = marchal.GetExceptionPointers(); var bRet = exp.ExceptionPointers == IntPtr.Zero ? MiniDumpWriteDump(currentProcessHandle, currentProcessId, fileHandle, (uint) options, IntPtr.Zero, IntPtr.Zero, IntPtr.Zero) @@ -100,7 +100,7 @@ namespace Umbraco.Core.Diagnostics return bRet; } - public static bool Dump(Option options = Option.WithFullMemory, bool withException = false) + public static bool Dump(IMarchal marchal, IIOHelper ioHelper, Option options = Option.WithFullMemory, bool withException = false) { lock (LockO) { @@ -110,8 +110,6 @@ namespace Umbraco.Core.Diagnostics // filter everywhere in our code = not! var stacktrace = withException ? Environment.StackTrace : string.Empty; - var ioHelper = Current.Factory.GetInstance(); - var filepath = ioHelper.MapPath("~/App_Data/MiniDump"); if (Directory.Exists(filepath) == false) Directory.CreateDirectory(filepath); @@ -119,16 +117,15 @@ namespace Umbraco.Core.Diagnostics var filename = Path.Combine(filepath, $"{DateTime.UtcNow:yyyyMMddTHHmmss}.{Guid.NewGuid().ToString("N").Substring(0, 4)}.dmp"); using (var stream = new FileStream(filename, FileMode.Create, FileAccess.ReadWrite, FileShare.Write)) { - return Write(stream.SafeFileHandle, options, withException); + return Write(marchal, stream.SafeFileHandle, options, withException); } } } - public static bool OkToDump() + public static bool OkToDump(IIOHelper ioHelper) { lock (LockO) { - var ioHelper = Current.Factory.GetInstance(); var filepath = ioHelper.MapPath("~/App_Data/MiniDump"); if (Directory.Exists(filepath) == false) return true; var count = Directory.GetFiles(filepath, "*.dmp").Length; diff --git a/src/Umbraco.Core/Logging/LogHttpRequest.cs b/src/Umbraco.Infrastructure/Logging/LogHttpRequest.cs similarity index 100% rename from src/Umbraco.Core/Logging/LogHttpRequest.cs rename to src/Umbraco.Infrastructure/Logging/LogHttpRequest.cs diff --git a/src/Umbraco.Core/Logging/MessageTemplates.cs b/src/Umbraco.Infrastructure/Logging/MessageTemplates.cs similarity index 100% rename from src/Umbraco.Core/Logging/MessageTemplates.cs rename to src/Umbraco.Infrastructure/Logging/MessageTemplates.cs diff --git a/src/Umbraco.Core/Logging/OwinLogger.cs b/src/Umbraco.Infrastructure/Logging/OwinLogger.cs similarity index 100% rename from src/Umbraco.Core/Logging/OwinLogger.cs rename to src/Umbraco.Infrastructure/Logging/OwinLogger.cs diff --git a/src/Umbraco.Core/Logging/OwinLoggerFactory.cs b/src/Umbraco.Infrastructure/Logging/OwinLoggerFactory.cs similarity index 84% rename from src/Umbraco.Core/Logging/OwinLoggerFactory.cs rename to src/Umbraco.Infrastructure/Logging/OwinLoggerFactory.cs index 31805b2edc..9cd4c06263 100644 --- a/src/Umbraco.Core/Logging/OwinLoggerFactory.cs +++ b/src/Umbraco.Infrastructure/Logging/OwinLoggerFactory.cs @@ -1,10 +1,10 @@ using System; using Microsoft.Owin.Logging; -using Umbraco.Core.Composing; +using Umbraco.Composing; namespace Umbraco.Core.Logging { - internal class OwinLoggerFactory : ILoggerFactory + public class OwinLoggerFactory : ILoggerFactory { /// /// Creates a new ILogger instance of the given name. diff --git a/src/Umbraco.Core/Logging/Serilog/Enrichers/HttpRequestIdEnricher.cs b/src/Umbraco.Infrastructure/Logging/Serilog/Enrichers/HttpRequestIdEnricher.cs similarity index 100% rename from src/Umbraco.Core/Logging/Serilog/Enrichers/HttpRequestIdEnricher.cs rename to src/Umbraco.Infrastructure/Logging/Serilog/Enrichers/HttpRequestIdEnricher.cs diff --git a/src/Umbraco.Core/Logging/Serilog/Enrichers/HttpRequestNumberEnricher.cs b/src/Umbraco.Infrastructure/Logging/Serilog/Enrichers/HttpRequestNumberEnricher.cs similarity index 100% rename from src/Umbraco.Core/Logging/Serilog/Enrichers/HttpRequestNumberEnricher.cs rename to src/Umbraco.Infrastructure/Logging/Serilog/Enrichers/HttpRequestNumberEnricher.cs diff --git a/src/Umbraco.Core/Logging/Serilog/Enrichers/HttpSessionIdEnricher.cs b/src/Umbraco.Infrastructure/Logging/Serilog/Enrichers/HttpSessionIdEnricher.cs similarity index 100% rename from src/Umbraco.Core/Logging/Serilog/Enrichers/HttpSessionIdEnricher.cs rename to src/Umbraco.Infrastructure/Logging/Serilog/Enrichers/HttpSessionIdEnricher.cs diff --git a/src/Umbraco.Core/Logging/Serilog/Enrichers/Log4NetLevelMapperEnricher.cs b/src/Umbraco.Infrastructure/Logging/Serilog/Enrichers/Log4NetLevelMapperEnricher.cs similarity index 100% rename from src/Umbraco.Core/Logging/Serilog/Enrichers/Log4NetLevelMapperEnricher.cs rename to src/Umbraco.Infrastructure/Logging/Serilog/Enrichers/Log4NetLevelMapperEnricher.cs diff --git a/src/Umbraco.Core/Logging/Serilog/LoggerConfigExtensions.cs b/src/Umbraco.Infrastructure/Logging/Serilog/LoggerConfigExtensions.cs similarity index 100% rename from src/Umbraco.Core/Logging/Serilog/LoggerConfigExtensions.cs rename to src/Umbraco.Infrastructure/Logging/Serilog/LoggerConfigExtensions.cs diff --git a/src/Umbraco.Core/Logging/Serilog/SerilogLogger.cs b/src/Umbraco.Infrastructure/Logging/Serilog/SerilogLogger.cs similarity index 88% rename from src/Umbraco.Core/Logging/Serilog/SerilogLogger.cs rename to src/Umbraco.Infrastructure/Logging/Serilog/SerilogLogger.cs index af5f712489..9dde28e95a 100644 --- a/src/Umbraco.Core/Logging/Serilog/SerilogLogger.cs +++ b/src/Umbraco.Infrastructure/Logging/Serilog/SerilogLogger.cs @@ -5,9 +5,10 @@ using System.Threading; using Serilog; using Serilog.Events; using Umbraco.Core.Cache; -using Umbraco.Core.Composing; +using Umbraco.Core.Configuration; using Umbraco.Core.Diagnostics; using Umbraco.Core.Hosting; +using Umbraco.Core.IO; using Umbraco.Net; namespace Umbraco.Core.Logging.Serilog @@ -17,19 +18,31 @@ namespace Umbraco.Core.Logging.Serilog /// public class SerilogLogger : ILogger, IDisposable { + private readonly ICoreDebug _coreDebug; + private readonly IIOHelper _ioHelper; + private readonly IMarchal _marchal; + /// /// Initialize a new instance of the class with a configuration file. /// /// - public SerilogLogger(FileInfo logConfigFile) + public SerilogLogger(ICoreDebug coreDebug, IIOHelper ioHelper, IMarchal marchal, FileInfo logConfigFile) { + _coreDebug = coreDebug; + _ioHelper = ioHelper; + _marchal = marchal; + Log.Logger = new LoggerConfiguration() .ReadFrom.AppSettings(filePath: AppDomain.CurrentDomain.BaseDirectory + logConfigFile) .CreateLogger(); } - public SerilogLogger(LoggerConfiguration logConfig) + public SerilogLogger(ICoreDebug coreDebug, IIOHelper ioHelper, IMarchal marchal, LoggerConfiguration logConfig) { + _coreDebug = coreDebug; + _ioHelper = ioHelper; + _marchal = marchal; + //Configure Serilog static global logger with config passed in Log.Logger = logConfig.CreateLogger(); } @@ -38,7 +51,7 @@ namespace Umbraco.Core.Logging.Serilog /// Creates a logger with some pre-defined configuration and remainder from config file /// /// Used by UmbracoApplicationBase to get its logger. - public static SerilogLogger CreateWithDefaultConfiguration(IHostingEnvironment hostingEnvironment, ISessionIdResolver sessionIdResolver, Func requestCacheGetter) + public static SerilogLogger CreateWithDefaultConfiguration(IHostingEnvironment hostingEnvironment, ISessionIdResolver sessionIdResolver, Func requestCacheGetter, ICoreDebug coreDebug, IIOHelper ioHelper, IMarchal marchal) { var loggerConfig = new LoggerConfiguration(); loggerConfig @@ -46,7 +59,7 @@ namespace Umbraco.Core.Logging.Serilog .ReadFromConfigFile() .ReadFromUserConfigFile(); - return new SerilogLogger(loggerConfig); + return new SerilogLogger(coreDebug, ioHelper, marchal, loggerConfig); } /// @@ -157,7 +170,7 @@ namespace Umbraco.Core.Logging.Serilog logger.Error(exception, messageTemplate, propertyValues); } - private static void DumpThreadAborts(global::Serilog.ILogger logger, LogEventLevel level, Exception exception, ref string messageTemplate) + private void DumpThreadAborts(global::Serilog.ILogger logger, LogEventLevel level, Exception exception, ref string messageTemplate) { var dump = false; @@ -166,17 +179,17 @@ namespace Umbraco.Core.Logging.Serilog messageTemplate += "\r\nThe thread has been aborted, because the request has timed out."; // dump if configured, or if stacktrace contains Monitor.ReliableEnter - dump = Current.Configs.CoreDebug().DumpOnTimeoutThreadAbort || IsMonitorEnterThreadAbortException(exception); + dump = _coreDebug.DumpOnTimeoutThreadAbort || IsMonitorEnterThreadAbortException(exception); // dump if it is ok to dump (might have a cap on number of dump...) - dump &= MiniDump.OkToDump(); + dump &= MiniDump.OkToDump(_ioHelper); } if (dump) { try { - var dumped = MiniDump.Dump(withException: true); + var dumped = MiniDump.Dump(_marchal, _ioHelper, withException: true); messageTemplate += dumped ? "\r\nA minidump was created in App_Data/MiniDump" : "\r\nFailed to create a minidump"; diff --git a/src/Umbraco.Core/Logging/Viewer/CountingFilter.cs b/src/Umbraco.Infrastructure/Logging/Viewer/CountingFilter.cs similarity index 100% rename from src/Umbraco.Core/Logging/Viewer/CountingFilter.cs rename to src/Umbraco.Infrastructure/Logging/Viewer/CountingFilter.cs diff --git a/src/Umbraco.Core/Logging/Viewer/ErrorCounterFilter.cs b/src/Umbraco.Infrastructure/Logging/Viewer/ErrorCounterFilter.cs similarity index 100% rename from src/Umbraco.Core/Logging/Viewer/ErrorCounterFilter.cs rename to src/Umbraco.Infrastructure/Logging/Viewer/ErrorCounterFilter.cs diff --git a/src/Umbraco.Core/Logging/Viewer/ExpressionFilter.cs b/src/Umbraco.Infrastructure/Logging/Viewer/ExpressionFilter.cs similarity index 100% rename from src/Umbraco.Core/Logging/Viewer/ExpressionFilter.cs rename to src/Umbraco.Infrastructure/Logging/Viewer/ExpressionFilter.cs diff --git a/src/Umbraco.Core/Logging/Viewer/ILogFilter.cs b/src/Umbraco.Infrastructure/Logging/Viewer/ILogFilter.cs similarity index 100% rename from src/Umbraco.Core/Logging/Viewer/ILogFilter.cs rename to src/Umbraco.Infrastructure/Logging/Viewer/ILogFilter.cs diff --git a/src/Umbraco.Core/Logging/Viewer/ILogViewer.cs b/src/Umbraco.Infrastructure/Logging/Viewer/ILogViewer.cs similarity index 100% rename from src/Umbraco.Core/Logging/Viewer/ILogViewer.cs rename to src/Umbraco.Infrastructure/Logging/Viewer/ILogViewer.cs diff --git a/src/Umbraco.Core/Logging/Viewer/JsonLogViewer.cs b/src/Umbraco.Infrastructure/Logging/Viewer/JsonLogViewer.cs similarity index 100% rename from src/Umbraco.Core/Logging/Viewer/JsonLogViewer.cs rename to src/Umbraco.Infrastructure/Logging/Viewer/JsonLogViewer.cs diff --git a/src/Umbraco.Core/Logging/Viewer/LogLevelCounts.cs b/src/Umbraco.Infrastructure/Logging/Viewer/LogLevelCounts.cs similarity index 100% rename from src/Umbraco.Core/Logging/Viewer/LogLevelCounts.cs rename to src/Umbraco.Infrastructure/Logging/Viewer/LogLevelCounts.cs diff --git a/src/Umbraco.Core/Logging/Viewer/LogMessage.cs b/src/Umbraco.Infrastructure/Logging/Viewer/LogMessage.cs similarity index 100% rename from src/Umbraco.Core/Logging/Viewer/LogMessage.cs rename to src/Umbraco.Infrastructure/Logging/Viewer/LogMessage.cs diff --git a/src/Umbraco.Core/Logging/Viewer/LogTemplate.cs b/src/Umbraco.Infrastructure/Logging/Viewer/LogTemplate.cs similarity index 100% rename from src/Umbraco.Core/Logging/Viewer/LogTemplate.cs rename to src/Umbraco.Infrastructure/Logging/Viewer/LogTemplate.cs diff --git a/src/Umbraco.Core/Logging/Viewer/LogTimePeriod.cs b/src/Umbraco.Infrastructure/Logging/Viewer/LogTimePeriod.cs similarity index 100% rename from src/Umbraco.Core/Logging/Viewer/LogTimePeriod.cs rename to src/Umbraco.Infrastructure/Logging/Viewer/LogTimePeriod.cs diff --git a/src/Umbraco.Core/Logging/Viewer/LogViewerComposer.cs b/src/Umbraco.Infrastructure/Logging/Viewer/LogViewerComposer.cs similarity index 100% rename from src/Umbraco.Core/Logging/Viewer/LogViewerComposer.cs rename to src/Umbraco.Infrastructure/Logging/Viewer/LogViewerComposer.cs diff --git a/src/Umbraco.Core/Logging/Viewer/LogViewerSourceBase.cs b/src/Umbraco.Infrastructure/Logging/Viewer/LogViewerSourceBase.cs similarity index 100% rename from src/Umbraco.Core/Logging/Viewer/LogViewerSourceBase.cs rename to src/Umbraco.Infrastructure/Logging/Viewer/LogViewerSourceBase.cs diff --git a/src/Umbraco.Core/Logging/Viewer/MessageTemplateFilter.cs b/src/Umbraco.Infrastructure/Logging/Viewer/MessageTemplateFilter.cs similarity index 100% rename from src/Umbraco.Core/Logging/Viewer/MessageTemplateFilter.cs rename to src/Umbraco.Infrastructure/Logging/Viewer/MessageTemplateFilter.cs diff --git a/src/Umbraco.Core/Logging/Viewer/SavedLogSearch.cs b/src/Umbraco.Infrastructure/Logging/Viewer/SavedLogSearch.cs similarity index 100% rename from src/Umbraco.Core/Logging/Viewer/SavedLogSearch.cs rename to src/Umbraco.Infrastructure/Logging/Viewer/SavedLogSearch.cs diff --git a/src/Umbraco.Infrastructure/Umbraco.Infrastructure.csproj b/src/Umbraco.Infrastructure/Umbraco.Infrastructure.csproj index 8e9baebbf0..5763d2aca4 100644 --- a/src/Umbraco.Infrastructure/Umbraco.Infrastructure.csproj +++ b/src/Umbraco.Infrastructure/Umbraco.Infrastructure.csproj @@ -9,6 +9,7 @@ + @@ -19,6 +20,7 @@ + diff --git a/src/Umbraco.Tests/TestHelpers/TestHelper.cs b/src/Umbraco.Tests/TestHelpers/TestHelper.cs index fbbb0ecff7..64e7b7e040 100644 --- a/src/Umbraco.Tests/TestHelpers/TestHelper.cs +++ b/src/Umbraco.Tests/TestHelpers/TestHelper.cs @@ -13,6 +13,7 @@ using Umbraco.Core.Cache; using Umbraco.Core.Composing; using Umbraco.Core.Configuration; using Umbraco.Core.Configuration.UmbracoSettings; +using Umbraco.Core.Diagnostics; using Umbraco.Core.Hosting; using Umbraco.Core.IO; using Umbraco.Core.Logging; @@ -87,6 +88,8 @@ namespace Umbraco.Tests.TestHelpers public static IShortStringHelper ShortStringHelper => new DefaultShortStringHelper(new DefaultShortStringHelperConfig()); public static IDbProviderFactoryCreator DbProviderFactoryCreator => new UmbracoDbProviderFactoryCreator(Constants.DbProviderNames.SqlCe); public static IBulkSqlInsertProvider BulkSqlInsertProvider => new SqlCeBulkSqlInsertProvider(); + public static IMarchal Marchal => new FrameworkMarchal(); + public static ICoreDebug CoreDebug => new CoreDebug(); public static IIOHelper IOHelper = new IOHelper(GetHostingEnvironment()); diff --git a/src/Umbraco.Tests/TestHelpers/TestObjects-Mocks.cs b/src/Umbraco.Tests/TestHelpers/TestObjects-Mocks.cs index e78b074b89..7230d1101e 100644 --- a/src/Umbraco.Tests/TestHelpers/TestObjects-Mocks.cs +++ b/src/Umbraco.Tests/TestHelpers/TestObjects-Mocks.cs @@ -158,7 +158,6 @@ namespace Umbraco.Tests.TestHelpers { return SettingsForTests.GetDefaultGlobalSettings(); } - public IFileSystems GetFileSystemsMock() { var fileSystems = Mock.Of(); diff --git a/src/Umbraco.Tests/Testing/UmbracoTestBase.cs b/src/Umbraco.Tests/Testing/UmbracoTestBase.cs index ea13a25bbd..13ee8fea89 100644 --- a/src/Umbraco.Tests/Testing/UmbracoTestBase.cs +++ b/src/Umbraco.Tests/Testing/UmbracoTestBase.cs @@ -241,7 +241,7 @@ namespace Umbraco.Tests.Testing profiler = Mock.Of(); break; case UmbracoTestOptions.Logger.Serilog: - logger = new SerilogLogger(new FileInfo(TestHelper.MapPathForTest("~/unit-test.config"))); + logger = new SerilogLogger(TestHelper.CoreDebug, IOHelper, TestHelper.Marchal, new FileInfo(TestHelper.MapPathForTest("~/unit-test.config"))); profiler = new LogProfiler(logger); break; case UmbracoTestOptions.Logger.Console: diff --git a/src/Umbraco.Tests/UmbracoExamine/ExamineBaseTest.cs b/src/Umbraco.Tests/UmbracoExamine/ExamineBaseTest.cs index ce3e45c23f..2266bd0104 100644 --- a/src/Umbraco.Tests/UmbracoExamine/ExamineBaseTest.cs +++ b/src/Umbraco.Tests/UmbracoExamine/ExamineBaseTest.cs @@ -17,7 +17,7 @@ namespace Umbraco.Tests.UmbracoExamine [OneTimeSetUp] public void InitializeFixture() { - var logger = new SerilogLogger(new FileInfo(TestHelper.MapPathForTest("~/unit-test.config"))); + var logger = new SerilogLogger(TestHelper.CoreDebug, IOHelper, TestHelper.Marchal, new FileInfo(TestHelper.MapPathForTest("~/unit-test.config"))); _profilingLogger = new ProfilingLogger(logger, new LogProfiler(logger)); } diff --git a/src/Umbraco.Web/FrameworkMarchal.cs b/src/Umbraco.Web/FrameworkMarchal.cs new file mode 100644 index 0000000000..c8cd8a5692 --- /dev/null +++ b/src/Umbraco.Web/FrameworkMarchal.cs @@ -0,0 +1,13 @@ +using System; +using System.Runtime.InteropServices; +using Umbraco.Core.Diagnostics; + +namespace Umbraco.Web +{ + + public class FrameworkMarchal : IMarchal + { + // This thing is not available in net standard, but exists in both .Net 4 and .Net Core 3 + public IntPtr GetExceptionPointers() => Marshal.GetExceptionPointers(); + } +} diff --git a/src/Umbraco.Web/Umbraco.Web.csproj b/src/Umbraco.Web/Umbraco.Web.csproj index d792ad84a3..bb4df93eb6 100755 --- a/src/Umbraco.Web/Umbraco.Web.csproj +++ b/src/Umbraco.Web/Umbraco.Web.csproj @@ -170,6 +170,7 @@ + diff --git a/src/Umbraco.Web/UmbracoApplicationBase.cs b/src/Umbraco.Web/UmbracoApplicationBase.cs index de780a6b48..9fee53dc48 100644 --- a/src/Umbraco.Web/UmbracoApplicationBase.cs +++ b/src/Umbraco.Web/UmbracoApplicationBase.cs @@ -46,7 +46,7 @@ namespace Umbraco.Web _profiler = new LogProfiler(_logger); - _logger = SerilogLogger.CreateWithDefaultConfiguration(_hostingEnvironment, new AspNetSessionIdResolver(), () => _factory?.GetInstance()); + _logger = SerilogLogger.CreateWithDefaultConfiguration(_hostingEnvironment, new AspNetSessionIdResolver(), () => _factory?.GetInstance(), _configs.CoreDebug(), _ioHelper, new FrameworkMarchal()); _backOfficeInfo = new AspNetBackOfficeInfo(_configs.Global(), _ioHelper, _configs.Settings(), _logger); Umbraco.Composing.Current.Logger = _logger;