diff --git a/src/Umbraco.Core/Logging/ILoggingConfiguration.cs b/src/Umbraco.Core/Logging/ILoggingConfiguration.cs
index 47e2d8fa7c..d21a08e688 100644
--- a/src/Umbraco.Core/Logging/ILoggingConfiguration.cs
+++ b/src/Umbraco.Core/Logging/ILoggingConfiguration.cs
@@ -7,7 +7,5 @@
/// The physical path where logs are stored
///
string LogDirectory { get; }
- string LogConfigurationFile { get; }
- string UserLogConfigurationFile { get; }
}
}
diff --git a/src/Umbraco.Core/Logging/LoggingConfiguration.cs b/src/Umbraco.Core/Logging/LoggingConfiguration.cs
index c657c9d430..ecd806211c 100644
--- a/src/Umbraco.Core/Logging/LoggingConfiguration.cs
+++ b/src/Umbraco.Core/Logging/LoggingConfiguration.cs
@@ -4,17 +4,11 @@ namespace Umbraco.Core.Logging
{
public class LoggingConfiguration : ILoggingConfiguration
{
- public LoggingConfiguration(string logDirectory, string logConfigurationFile, string userLogConfigurationFile)
+ public LoggingConfiguration(string logDirectory)
{
LogDirectory = logDirectory ?? throw new ArgumentNullException(nameof(logDirectory));
- LogConfigurationFile = logConfigurationFile ?? throw new ArgumentNullException(nameof(logConfigurationFile));
- UserLogConfigurationFile = userLogConfigurationFile ?? throw new ArgumentNullException(nameof(userLogConfigurationFile));
}
public string LogDirectory { get; }
-
- public string LogConfigurationFile { get; }
-
- public string UserLogConfigurationFile { get; }
}
}
diff --git a/src/Umbraco.Infrastructure/Composing/HostBuilderExtensions.cs b/src/Umbraco.Infrastructure/Composing/HostBuilderExtensions.cs
index f6d980f62a..ad7c75b94f 100644
--- a/src/Umbraco.Infrastructure/Composing/HostBuilderExtensions.cs
+++ b/src/Umbraco.Infrastructure/Composing/HostBuilderExtensions.cs
@@ -26,7 +26,6 @@ namespace Umbraco.Core.Composing
///
///
public static IHostBuilder UseUmbraco(this IHostBuilder builder, UmbracoServiceProviderFactory umbracoServiceProviderFactory)
- => builder.UseServiceProviderFactory(umbracoServiceProviderFactory)
- .UseSerilog();
+ => builder.UseServiceProviderFactory(umbracoServiceProviderFactory);
}
}
diff --git a/src/Umbraco.Infrastructure/Logging/Serilog/LoggerConfigExtensions.cs b/src/Umbraco.Infrastructure/Logging/Serilog/LoggerConfigExtensions.cs
index f2e028e6de..84270b95bf 100644
--- a/src/Umbraco.Infrastructure/Logging/Serilog/LoggerConfigExtensions.cs
+++ b/src/Umbraco.Infrastructure/Logging/Serilog/LoggerConfigExtensions.cs
@@ -7,7 +7,6 @@ using Serilog.Core;
using Serilog.Events;
using Serilog.Formatting;
using Serilog.Formatting.Compact;
-using Umbraco.Core.IO;
using Umbraco.Core.Hosting;
using Umbraco.Core.Logging.Serilog.Enrichers;
@@ -48,6 +47,11 @@ namespace Umbraco.Core.Logging.Serilog
.Enrich.With()
.Enrich.FromLogContext(); // allows us to dynamically enrich
+
+ logConfig.WriteTo.UmbracoFile(
+ Path.Combine(loggingConfiguration.LogDirectory, $"UmbracoTraceLog.{Environment.MachineName}..json")
+ );
+
return logConfig;
}
@@ -61,7 +65,7 @@ namespace Umbraco.Core.Logging.Serilog
public static LoggerConfiguration OutputDefaultTextFile(
this LoggerConfiguration logConfig,
IHostingEnvironment hostingEnvironment,
- ILoggingConfiguration loggingConfiguration, LogEventLevel minimumLevel = LogEventLevel.Verbose, int? retainedFileCount = null)
+ LogEventLevel minimumLevel = LogEventLevel.Verbose)
{
//Main .txt logfile - in similar format to older Log4Net output
//Ends with ..txt as Date is inserted before file extension substring
@@ -79,18 +83,25 @@ namespace Umbraco.Core.Logging.Serilog
///
/// Used in config - If renamed or moved to other assembly the config file also has be updated.
///
- public static LoggerConfiguration File(this LoggerSinkConfiguration configuration, ITextFormatter formatter,
+ public static LoggerConfiguration UmbracoFile(this LoggerSinkConfiguration configuration,
string path,
+ ITextFormatter formatter = null,
LogEventLevel restrictedToMinimumLevel = LogEventLevel.Verbose,
LoggingLevelSwitch levelSwitch = null,
long? fileSizeLimitBytes = 1073741824,
TimeSpan? flushToDiskInterval = null,
- RollingInterval rollingInterval = RollingInterval.Infinite,
+ RollingInterval rollingInterval = RollingInterval.Day,
bool rollOnFileSizeLimit = false,
int? retainedFileCountLimit = 31,
Encoding encoding = null
)
{
+
+ if (formatter is null)
+ {
+ formatter = new CompactJsonFormatter();
+ }
+
return configuration.Async(
asyncConfiguration => asyncConfiguration.Map(AppDomainId, (_,mapConfiguration) =>
mapConfiguration.File(
@@ -136,34 +147,5 @@ namespace Umbraco.Core.Logging.Serilog
return logConfig;
}
- ///
- /// Reads settings from /config/serilog.config
- /// That allows the main logging pipeline to be configured
- ///
- /// A Serilog LoggerConfiguration
- ///
- public static LoggerConfiguration ReadFromConfigFile(this LoggerConfiguration logConfig, ILoggingConfiguration loggingConfiguration)
- {
- //Read from main serilog.config file
- logConfig.ReadFrom.AppSettings(filePath: loggingConfiguration.LogConfigurationFile);
-
- return logConfig;
- }
-
- ///
- /// Reads settings from /config/serilog.user.config
- /// That allows a separate logging pipeline to be configured that will not affect the main Umbraco log
- ///
- /// A Serilog LoggerConfiguration
- ///
- public static LoggerConfiguration ReadFromUserConfigFile(this LoggerConfiguration logConfig, ILoggingConfiguration loggingConfiguration)
- {
- //A nested logger - where any user configured sinks via config can not effect the main 'umbraco' logger above
- logConfig.WriteTo.Logger(cfg =>
- cfg.ReadFrom.AppSettings(filePath: loggingConfiguration.UserLogConfigurationFile));
-
- return logConfig;
- }
-
}
}
diff --git a/src/Umbraco.Infrastructure/Logging/Serilog/SerilogLogger.cs b/src/Umbraco.Infrastructure/Logging/Serilog/SerilogLogger.cs
index 38af9554ab..7b8b83c59a 100644
--- a/src/Umbraco.Infrastructure/Logging/Serilog/SerilogLogger.cs
+++ b/src/Umbraco.Infrastructure/Logging/Serilog/SerilogLogger.cs
@@ -1,7 +1,9 @@
using System;
using System.IO;
+using Microsoft.Extensions.Configuration;
using Serilog;
using Serilog.Events;
+using Serilog.Extensions.Logging;
using Umbraco.Core.Hosting;
namespace Umbraco.Core.Logging.Serilog
@@ -35,13 +37,14 @@ 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, ILoggingConfiguration loggingConfiguration)
+ public static SerilogLogger CreateWithDefaultConfiguration(
+ IHostingEnvironment hostingEnvironment,
+ ILoggingConfiguration loggingConfiguration,
+ IConfiguration configuration)
{
- var loggerConfig = new LoggerConfiguration();
- loggerConfig
+ var loggerConfig = new LoggerConfiguration()
.MinimalConfiguration(hostingEnvironment, loggingConfiguration)
- .ReadFromConfigFile(loggingConfiguration)
- .ReadFromUserConfigFile(loggingConfiguration);
+ .ReadFrom.Configuration(configuration);
return new SerilogLogger(loggerConfig);
}
@@ -83,7 +86,7 @@ namespace Umbraco.Core.Logging.Serilog
///
public void Fatal(Type reporting, Exception exception, string message)
{
- var logger = LoggerFor(reporting);
+ var logger = LoggerFor(reporting);
logger.Fatal(exception, message);
}
@@ -91,7 +94,7 @@ namespace Umbraco.Core.Logging.Serilog
public void Fatal(Type reporting, Exception exception)
{
var logger = LoggerFor(reporting);
- var message = "Exception.";
+ var message = "Exception.";
logger.Fatal(exception, message);
}
@@ -110,14 +113,14 @@ namespace Umbraco.Core.Logging.Serilog
///
public void Fatal(Type reporting, Exception exception, string messageTemplate, params object[] propertyValues)
{
- var logger = LoggerFor(reporting);
+ var logger = LoggerFor(reporting);
logger.Fatal(exception, messageTemplate, propertyValues);
}
///
public void Error(Type reporting, Exception exception, string message)
{
- var logger = LoggerFor(reporting);
+ var logger = LoggerFor(reporting);
logger.Error(exception, message);
}
diff --git a/src/Umbraco.Infrastructure/Logging/Viewer/LogViewerComposer.cs b/src/Umbraco.Infrastructure/Logging/Viewer/LogViewerComposer.cs
index 0909ec67ad..d340bb817f 100644
--- a/src/Umbraco.Infrastructure/Logging/Viewer/LogViewerComposer.cs
+++ b/src/Umbraco.Infrastructure/Logging/Viewer/LogViewerComposer.cs
@@ -11,16 +11,6 @@ namespace Umbraco.Core.Logging.Viewer
{
public void Compose(Composition composition)
{
-
-
- composition.RegisterUnique(factory =>
- {
- var hostingEnvironment = factory.GetInstance();
- return new LoggingConfiguration(
- Path.Combine(hostingEnvironment.ApplicationPhysicalPath, "App_Data", "Logs"),
- Path.Combine(hostingEnvironment.ApplicationPhysicalPath, "config", "serilog.config"),
- Path.Combine(hostingEnvironment.ApplicationPhysicalPath, "config", "serilog.user.config"));
- });
composition.RegisterUnique();
composition.SetLogViewer();
composition.RegisterUnique(factory =>
diff --git a/src/Umbraco.Infrastructure/Umbraco.Infrastructure.csproj b/src/Umbraco.Infrastructure/Umbraco.Infrastructure.csproj
index bcd3773ac8..4da891427f 100644
--- a/src/Umbraco.Infrastructure/Umbraco.Infrastructure.csproj
+++ b/src/Umbraco.Infrastructure/Umbraco.Infrastructure.csproj
@@ -34,6 +34,7 @@
+
diff --git a/src/Umbraco.Tests.Common/TestHelperBase.cs b/src/Umbraco.Tests.Common/TestHelperBase.cs
index cd9426ac2f..ed72661044 100644
--- a/src/Umbraco.Tests.Common/TestHelperBase.cs
+++ b/src/Umbraco.Tests.Common/TestHelperBase.cs
@@ -144,9 +144,7 @@ namespace Umbraco.Tests.Common
{
hostingEnv = hostingEnv ?? GetHostingEnvironment();
return new LoggingConfiguration(
- Path.Combine(hostingEnv.ApplicationPhysicalPath, "App_Data","Logs"),
- Path.Combine(hostingEnv.ApplicationPhysicalPath, "config","serilog.config"),
- Path.Combine(hostingEnv.ApplicationPhysicalPath, "config","serilog.user.config"));
+ Path.Combine(hostingEnv.ApplicationPhysicalPath, "umbraco","logs"));
}
}
}
diff --git a/src/Umbraco.Tests.Integration/RuntimeTests.cs b/src/Umbraco.Tests.Integration/RuntimeTests.cs
index 32045b633a..ae6fe81314 100644
--- a/src/Umbraco.Tests.Integration/RuntimeTests.cs
+++ b/src/Umbraco.Tests.Integration/RuntimeTests.cs
@@ -120,7 +120,7 @@ namespace Umbraco.Tests.Integration
// Add it!
services.AddUmbracoConfiguration(hostContext.Configuration);
- services.AddUmbracoCore(webHostEnvironment, umbracoContainer, GetType().Assembly, AppCaches.NoCache, testHelper.GetLoggingConfiguration(), out _);
+ services.AddUmbracoCore(webHostEnvironment, umbracoContainer, GetType().Assembly, AppCaches.NoCache, testHelper.GetLoggingConfiguration(), hostContext.Configuration,out _);
});
var host = await hostBuilder.StartAsync();
@@ -160,7 +160,7 @@ namespace Umbraco.Tests.Integration
// Add it!
services.AddUmbracoConfiguration(hostContext.Configuration);
- services.AddUmbracoCore(webHostEnvironment, umbracoContainer, GetType().Assembly, AppCaches.NoCache, testHelper.GetLoggingConfiguration(), out _);
+ services.AddUmbracoCore(webHostEnvironment, umbracoContainer, GetType().Assembly, AppCaches.NoCache, testHelper.GetLoggingConfiguration(),hostContext.Configuration, out _);
});
var host = await hostBuilder.StartAsync();
diff --git a/src/Umbraco.Tests.Integration/TestServerTest/UmbracoBuilderExtensions.cs b/src/Umbraco.Tests.Integration/TestServerTest/UmbracoBuilderExtensions.cs
index 953be73c27..29b360d636 100644
--- a/src/Umbraco.Tests.Integration/TestServerTest/UmbracoBuilderExtensions.cs
+++ b/src/Umbraco.Tests.Integration/TestServerTest/UmbracoBuilderExtensions.cs
@@ -22,36 +22,37 @@ namespace Umbraco.Tests.Integration.TestServerTest
Action dbInstallEventHandler)
{
return builder.AddWith(nameof(global::Umbraco.Web.Common.Builder.UmbracoBuilderExtensions.WithCore),
- () =>
- {
- builder.Services.AddUmbracoCore(
- builder.WebHostEnvironment,
- container,
- typeof(UmbracoBuilderExtensions).Assembly,
- AppCaches.NoCache, // Disable caches in integration tests
- testHelper.GetLoggingConfiguration(),
- (globalSettings, connectionStrings, umbVersion, ioHelper, logger, profiler, hostingEnv,
- backOfficeInfo, typeFinder, appCaches, dbProviderFactoryCreator) =>
- {
- var runtime = UmbracoIntegrationTest.CreateTestRuntime(
- globalSettings,
- connectionStrings,
- umbVersion,
- ioHelper,
- logger,
- profiler,
- hostingEnv,
- backOfficeInfo,
- typeFinder,
- appCaches,
- dbProviderFactoryCreator,
- testHelper.MainDom, // SimpleMainDom
- dbInstallEventHandler); // DB Installation event handler
+ () =>
+ {
+ builder.Services.AddUmbracoCore(
+ builder.WebHostEnvironment,
+ container,
+ typeof(UmbracoBuilderExtensions).Assembly,
+ AppCaches.NoCache, // Disable caches in integration tests
+ testHelper.GetLoggingConfiguration(),
+ builder.Config,
+ // TODO: Yep that's extremely ugly
+ (globalSettings, connectionStrings, umbVersion, ioHelper, logger, profiler, hostingEnv, backOfficeInfo, typeFinder, appCaches, dbProviderFactoryCreator) =>
+ {
+ var runtime = UmbracoIntegrationTest.CreateTestRuntime(
+ globalSettings,
+ connectionStrings,
+ umbVersion,
+ ioHelper,
+ logger,
+ profiler,
+ hostingEnv,
+ backOfficeInfo,
+ typeFinder,
+ appCaches,
+ dbProviderFactoryCreator,
+ testHelper.MainDom, // SimpleMainDom
+ dbInstallEventHandler); // DB Installation event handler
- return runtime;
- },
- out _);
- });
+ return runtime;
+ },
+ out _);
+ });
}
}
}
diff --git a/src/Umbraco.Tests.Integration/Testing/UmbracoIntegrationTest.cs b/src/Umbraco.Tests.Integration/Testing/UmbracoIntegrationTest.cs
index a57e9ac513..552bbf59ae 100644
--- a/src/Umbraco.Tests.Integration/Testing/UmbracoIntegrationTest.cs
+++ b/src/Umbraco.Tests.Integration/Testing/UmbracoIntegrationTest.cs
@@ -226,6 +226,7 @@ namespace Umbraco.Tests.Integration.Testing
GetType().Assembly,
AppCaches.NoCache, // Disable caches for integration tests
TestHelper.GetLoggingConfiguration(),
+ Configuration,
CreateTestRuntime,
out _);
diff --git a/src/Umbraco.Web.Common/Builder/UmbracoBuilderExtensions.cs b/src/Umbraco.Web.Common/Builder/UmbracoBuilderExtensions.cs
index 08b7670522..5b4876baca 100644
--- a/src/Umbraco.Web.Common/Builder/UmbracoBuilderExtensions.cs
+++ b/src/Umbraco.Web.Common/Builder/UmbracoBuilderExtensions.cs
@@ -26,7 +26,7 @@ namespace Umbraco.Web.Common.Builder
=> builder.AddWith(nameof(WithConfiguration), () => builder.Services.AddUmbracoConfiguration(builder.Config));
public static IUmbracoBuilder WithCore(this IUmbracoBuilder builder)
- => builder.AddWith(nameof(WithCore), () => builder.Services.AddUmbracoCore(builder.WebHostEnvironment, out _));
+ => builder.AddWith(nameof(WithCore), () => builder.Services.AddUmbracoCore(builder.WebHostEnvironment, builder.Config, out _));
public static IUmbracoBuilder WithMiniProfiler(this IUmbracoBuilder builder)
=> builder.AddWith(nameof(WithMiniProfiler), () =>
diff --git a/src/Umbraco.Web.Common/Extensions/UmbracoCoreServiceCollectionExtensions.cs b/src/Umbraco.Web.Common/Extensions/UmbracoCoreServiceCollectionExtensions.cs
index c5f3c3dfe8..212faa3670 100644
--- a/src/Umbraco.Web.Common/Extensions/UmbracoCoreServiceCollectionExtensions.cs
+++ b/src/Umbraco.Web.Common/Extensions/UmbracoCoreServiceCollectionExtensions.cs
@@ -103,19 +103,20 @@ namespace Umbraco.Extensions
///
///
///
- ///
///
///
+ ///
+ ///
///
- public static IServiceCollection AddUmbracoCore(
- this IServiceCollection services,
+ public static IServiceCollection AddUmbracoCore(this IServiceCollection services,
IWebHostEnvironment webHostEnvironment,
IRegister umbContainer,
Assembly entryAssembly,
AppCaches appCaches,
ILoggingConfiguration loggingConfiguration,
+ IConfiguration configuration,
out IFactory factory)
- => services.AddUmbracoCore(webHostEnvironment, umbContainer, entryAssembly, appCaches, loggingConfiguration, GetCoreRuntime, out factory);
+ => services.AddUmbracoCore(webHostEnvironment, umbContainer, entryAssembly, appCaches, loggingConfiguration, configuration, GetCoreRuntime, out factory);
///
/// Adds the Umbraco Configuration requirements
@@ -162,10 +163,11 @@ namespace Umbraco.Extensions
///
///
///
+ ///
///
- public static IServiceCollection AddUmbracoCore(this IServiceCollection services, IWebHostEnvironment webHostEnvironment)
+ public static IServiceCollection AddUmbracoCore(this IServiceCollection services, IWebHostEnvironment webHostEnvironment, IConfiguration configuration)
{
- return services.AddUmbracoCore(webHostEnvironment, out _);
+ return services.AddUmbracoCore(webHostEnvironment, configuration, out _);
}
///
@@ -173,9 +175,10 @@ namespace Umbraco.Extensions
///
///
///
+ ///
///
///
- public static IServiceCollection AddUmbracoCore(this IServiceCollection services, IWebHostEnvironment webHostEnvironment, out IFactory factory)
+ public static IServiceCollection AddUmbracoCore(this IServiceCollection services, IWebHostEnvironment webHostEnvironment, IConfiguration configuration, out IFactory factory)
{
if (!UmbracoServiceProviderFactory.IsActive)
throw new InvalidOperationException("Ensure to add UseUmbraco() in your Program.cs after ConfigureWebHostDefaults to enable Umbraco's service provider factory");
@@ -183,12 +186,11 @@ namespace Umbraco.Extensions
var umbContainer = UmbracoServiceProviderFactory.UmbracoContainer;
var loggingConfig = new LoggingConfiguration(
- Path.Combine(webHostEnvironment.ContentRootPath, "App_Data", "Logs"),
- Path.Combine(webHostEnvironment.ContentRootPath, "config", "serilog.config"),
- Path.Combine(webHostEnvironment.ContentRootPath, "config", "serilog.user.config"));
+ Path.Combine(webHostEnvironment.ContentRootPath, "umbraco", "logs"));
IHttpContextAccessor httpContextAccessor = new HttpContextAccessor();
services.AddSingleton(httpContextAccessor);
+ services.AddSingleton(loggingConfig);
var requestCache = new GenericDictionaryRequestAppCache(() => httpContextAccessor.HttpContext?.Items);
var appCaches = new AppCaches(
@@ -201,6 +203,7 @@ namespace Umbraco.Extensions
Assembly.GetEntryAssembly(),
appCaches,
loggingConfig,
+ configuration,
GetCoreRuntime,
out factory);
@@ -227,6 +230,7 @@ namespace Umbraco.Extensions
Assembly entryAssembly,
AppCaches appCaches,
ILoggingConfiguration loggingConfiguration,
+ IConfiguration configuration,
//TODO: Yep that's extremely ugly
Func getRuntime,
out IFactory factory)
@@ -268,6 +272,7 @@ namespace Umbraco.Extensions
hostingSettings,
webHostEnvironment,
loggingConfiguration,
+ configuration,
out var logger, out var ioHelper, out var hostingEnvironment, out var backOfficeInfo, out var profiler);
var umbracoVersion = new UmbracoVersion();
@@ -288,6 +293,13 @@ namespace Umbraco.Extensions
factory = coreRuntime.Configure(container);
+
+ services.Configure(hostingSettings =>
+ {
+ hostingSettings.Debug = false;
+ });
+
+
return services;
}
@@ -338,6 +350,7 @@ namespace Umbraco.Extensions
IOptionsMonitor hostingSettings,
IWebHostEnvironment webHostEnvironment,
ILoggingConfiguration loggingConfiguration,
+ IConfiguration configuration,
out Core.Logging.ILogger logger,
out IIOHelper ioHelper,
out Core.Hosting.IHostingEnvironment hostingEnvironment,
@@ -349,8 +362,7 @@ namespace Umbraco.Extensions
hostingEnvironment = new AspNetCoreHostingEnvironment(hostingSettings, webHostEnvironment);
ioHelper = new IOHelper(hostingEnvironment);
- logger = AddLogger(services, hostingEnvironment, loggingConfiguration);
-
+ logger = AddLogger(services, hostingEnvironment, loggingConfiguration, configuration);
backOfficeInfo = new AspNetCoreBackOfficeInfo(globalSettings);
profiler = GetWebProfiler(hostingEnvironment);
@@ -361,10 +373,14 @@ namespace Umbraco.Extensions
/// Create and configure the logger
///
///
- private static Core.Logging.ILogger AddLogger(IServiceCollection services, Core.Hosting.IHostingEnvironment hostingEnvironment, ILoggingConfiguration loggingConfiguration)
+ private static Core.Logging.ILogger AddLogger(IServiceCollection services, Core.Hosting.IHostingEnvironment hostingEnvironment, ILoggingConfiguration loggingConfiguration, IConfiguration configuration)
{
// Create a serilog logger
- var logger = SerilogLogger.CreateWithDefaultConfiguration(hostingEnvironment, loggingConfiguration);
+ var logger = SerilogLogger.CreateWithDefaultConfiguration(hostingEnvironment, loggingConfiguration, configuration);
+
+ // This is nessasary to pick up all the loggins to MS ILogger.
+ Log.Logger = logger.SerilogLog;
+
// Wire up all the bits that serilog needs. We need to use our own code since the Serilog ext methods don't cater to our needs since
// we don't want to use the global serilog `Log` object and we don't have our own ILogger implementation before the HostBuilder runs which
@@ -372,7 +388,13 @@ namespace Umbraco.Extensions
// I have created a PR to make this nicer https://github.com/serilog/serilog-extensions-hosting/pull/19 but we'll need to wait for that.
// Also see : https://github.com/serilog/serilog-extensions-hosting/blob/dev/src/Serilog.Extensions.Hosting/SerilogHostBuilderExtensions.cs
- services.AddSingleton(services => new SerilogLoggerFactory(logger.SerilogLog, false));
+ services.AddLogging(configure =>
+ {
+ configure.AddSerilog(logger.SerilogLog, false);
+ });
+
+
+ //services.AddSingleton(services => new SerilogLoggerFactory(logger.SerilogLog, false));
// This won't (and shouldn't) take ownership of the logger.
services.AddSingleton(logger.SerilogLog);
diff --git a/src/Umbraco.Web.UI.NetCore/Program.cs b/src/Umbraco.Web.UI.NetCore/Program.cs
index 30aced6469..4a7722597d 100644
--- a/src/Umbraco.Web.UI.NetCore/Program.cs
+++ b/src/Umbraco.Web.UI.NetCore/Program.cs
@@ -1,5 +1,6 @@
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Hosting;
+using Microsoft.Extensions.Logging;
using Umbraco.Core.Composing;
namespace Umbraco.Web.UI.NetCore
@@ -15,6 +16,10 @@ namespace Umbraco.Web.UI.NetCore
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
+ .ConfigureLogging(x =>
+ {
+ x.ClearProviders();
+ })
.ConfigureWebHostDefaults(webBuilder => { webBuilder.UseStartup(); })
.UseUmbraco();
}
diff --git a/src/Umbraco.Web.UI.NetCore/Umbraco.Web.UI.NetCore.csproj b/src/Umbraco.Web.UI.NetCore/Umbraco.Web.UI.NetCore.csproj
index 5f7d57c475..1af278cbc3 100644
--- a/src/Umbraco.Web.UI.NetCore/Umbraco.Web.UI.NetCore.csproj
+++ b/src/Umbraco.Web.UI.NetCore/Umbraco.Web.UI.NetCore.csproj
@@ -59,11 +59,11 @@
-
-
-
+
+
+
-
+
diff --git a/src/Umbraco.Web.UI.NetCore/Views/asda.cshtml b/src/Umbraco.Web.UI.NetCore/Views/asda.cshtml
deleted file mode 100644
index 3fa17ab54c..0000000000
--- a/src/Umbraco.Web.UI.NetCore/Views/asda.cshtml
+++ /dev/null
@@ -1,4 +0,0 @@
-@inherits Umbraco.Web.Common.AspNetCore.UmbracoViewPage
-@{
- Layout = null;
-}
\ No newline at end of file
diff --git a/src/Umbraco.Web.UI.NetCore/appsettings.Development.json b/src/Umbraco.Web.UI.NetCore/appsettings.Development.json
index ad6a228271..1ba7dd6c68 100644
--- a/src/Umbraco.Web.UI.NetCore/appsettings.Development.json
+++ b/src/Umbraco.Web.UI.NetCore/appsettings.Development.json
@@ -1,4 +1,21 @@
{
+ "Serilog": {
+ "MinimumLevel": {
+ "Default": "Information"
+ },
+ "WriteTo":[
+ {
+ "Name": "Async",
+ "Args": {
+ "configure": [
+ {
+ "Name": "Console"
+ }
+ ]
+ }
+ }
+ ]
+ },
"Umbraco": {
"CMS": {
"Global":{
diff --git a/src/Umbraco.Web.UI.NetCore/appsettings.json b/src/Umbraco.Web.UI.NetCore/appsettings.json
index 0082f3fa50..3d9560dd9a 100644
--- a/src/Umbraco.Web.UI.NetCore/appsettings.json
+++ b/src/Umbraco.Web.UI.NetCore/appsettings.json
@@ -2,6 +2,16 @@
"ConnectionStrings": {
"umbracoDbDSN": ""
},
+ "Serilog": {
+ "MinimumLevel": {
+ "Default": "Information",
+ "Override": {
+ "Microsoft": "Warning",
+ "Microsoft.Hosting.Lifetime": "Information",
+ "System": "Warning"
+ }
+ }
+ },
"Umbraco": {
"CMS": {
"Content": {
diff --git a/src/Umbraco.Web.UI.NetCore/config/serilog.Release.config b/src/Umbraco.Web.UI.NetCore/config/serilog.Release.config
deleted file mode 100644
index 9aca408b36..0000000000
--- a/src/Umbraco.Web.UI.NetCore/config/serilog.Release.config
+++ /dev/null
@@ -1,41 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/Umbraco.Web.UI.NetCore/config/serilog.config b/src/Umbraco.Web.UI.NetCore/config/serilog.config
deleted file mode 100644
index 1b357696b9..0000000000
--- a/src/Umbraco.Web.UI.NetCore/config/serilog.config
+++ /dev/null
@@ -1,41 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/Umbraco.Web.UI.NetCore/config/serilog.user.Release.config b/src/Umbraco.Web.UI.NetCore/config/serilog.user.Release.config
deleted file mode 100644
index 8f207406e3..0000000000
--- a/src/Umbraco.Web.UI.NetCore/config/serilog.user.Release.config
+++ /dev/null
@@ -1,39 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/Umbraco.Web.UI.NetCore/config/serilog.user.config b/src/Umbraco.Web.UI.NetCore/config/serilog.user.config
deleted file mode 100644
index 8f207406e3..0000000000
--- a/src/Umbraco.Web.UI.NetCore/config/serilog.user.config
+++ /dev/null
@@ -1,39 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/Umbraco.Web/UmbracoApplicationBase.cs b/src/Umbraco.Web/UmbracoApplicationBase.cs
index f144a52761..440cceebf5 100644
--- a/src/Umbraco.Web/UmbracoApplicationBase.cs
+++ b/src/Umbraco.Web/UmbracoApplicationBase.cs
@@ -1,9 +1,11 @@
using System;
+using System.Collections.Generic;
using System.IO;
using System.Reflection;
using System.Threading;
using System.Web;
using System.Web.Hosting;
+using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Options;
using Serilog.Context;
using Umbraco.Core;
@@ -47,11 +49,9 @@ namespace Umbraco.Web
var hostingEnvironment = new AspNetHostingEnvironment(Options.Create(hostingSettings));
var loggingConfiguration = new LoggingConfiguration(
- Path.Combine(hostingEnvironment.ApplicationPhysicalPath, "App_Data\\Logs"),
- Path.Combine(hostingEnvironment.ApplicationPhysicalPath, "config\\serilog.config"),
- Path.Combine(hostingEnvironment.ApplicationPhysicalPath, "config\\serilog.user.config"));
+ Path.Combine(hostingEnvironment.ApplicationPhysicalPath, "App_Data\\Logs"));
var ioHelper = new IOHelper(hostingEnvironment);
- var logger = SerilogLogger.CreateWithDefaultConfiguration(hostingEnvironment, loggingConfiguration);
+ var logger = SerilogLogger.CreateWithDefaultConfiguration(hostingEnvironment, loggingConfiguration, new ConfigurationRoot(new List()));
var backOfficeInfo = new AspNetBackOfficeInfo(globalSettings, ioHelper, logger, Options.Create(webRoutingSettings));
var profiler = GetWebProfiler(hostingEnvironment);