Start using LoggerFactory

This commit is contained in:
Nikolaj
2020-09-15 12:40:35 +02:00
parent 9fa4319940
commit 0238d6eb02
22 changed files with 119 additions and 80 deletions

View File

@@ -1,4 +1,5 @@
using System;

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
@@ -11,6 +12,8 @@ using Umbraco.Core.Collections;
using Umbraco.Core.IO;
using Umbraco.Core.Logging;
using File = System.IO.File;
using Microsoft.Extensions.Logging;
using ILogger = Microsoft.Extensions.Logging.ILogger;
namespace Umbraco.Core.Composing
{
@@ -28,7 +31,7 @@ namespace Umbraco.Core.Composing
private const string CacheKey = "umbraco-types.list";
private readonly IAppPolicyCache _runtimeCache;
private readonly ILogger<TypeLoader> _logger;
private readonly ILogger _logger;
private readonly IProfilingLogger _profilingLogger;
private readonly Dictionary<CompositeTypeTypeKey, TypeList> _types = new Dictionary<CompositeTypeTypeKey, TypeList>();
@@ -52,7 +55,7 @@ namespace Umbraco.Core.Composing
/// <param name="localTempPath">Files storage location.</param>
/// <param name="logger">A profiling logger.</param>
/// <param name="assembliesToScan"></param>
public TypeLoader(ITypeFinder typeFinder, IAppPolicyCache runtimeCache, DirectoryInfo localTempPath, ILogger<TypeLoader> logger, IProfilingLogger profilingLogger, IEnumerable<Assembly> assembliesToScan = null)
public TypeLoader(ITypeFinder typeFinder, IAppPolicyCache runtimeCache, DirectoryInfo localTempPath, ILogger logger, IProfilingLogger profilingLogger, IEnumerable<Assembly> assembliesToScan = null)
: this(typeFinder, runtimeCache, localTempPath, logger, profilingLogger, true, assembliesToScan)
{ }
@@ -65,7 +68,7 @@ namespace Umbraco.Core.Composing
/// <param name="logger">A profiling logger.</param>
/// <param name="detectChanges">Whether to detect changes using hashes.</param>
/// <param name="assembliesToScan"></param>
public TypeLoader(ITypeFinder typeFinder, IAppPolicyCache runtimeCache, DirectoryInfo localTempPath, ILogger<TypeLoader> logger, IProfilingLogger profilingLogger, bool detectChanges, IEnumerable<Assembly> assembliesToScan = null)
public TypeLoader(ITypeFinder typeFinder, IAppPolicyCache runtimeCache, DirectoryInfo localTempPath, ILogger logger, IProfilingLogger profilingLogger, bool detectChanges, IEnumerable<Assembly> assembliesToScan = null)
{
TypeFinder = typeFinder ?? throw new ArgumentNullException(nameof(typeFinder));
_runtimeCache = runtimeCache ?? throw new ArgumentNullException(nameof(runtimeCache));

View File

@@ -15,6 +15,7 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Extensions.Logging" Version="3.1.8" />
<PackageReference Include="System.ComponentModel.Annotations" Version="4.7.0" />
<PackageReference Include="System.Configuration.ConfigurationManager" Version="4.7.0" />
<PackageReference Include="System.Reflection.Emit.Lightweight" Version="4.3.0" />

View File

@@ -14,12 +14,14 @@ namespace Umbraco.Examine
/// </summary>
public class IndexRebuilder
{
private readonly IProfilingLogger _logger;
private readonly IProfilingLogger _pLogger;
private readonly ILogger<IndexRebuilder> _logger;
private readonly IEnumerable<IIndexPopulator> _populators;
public IExamineManager ExamineManager { get; }
public IndexRebuilder(IProfilingLogger logger, IExamineManager examineManager, IEnumerable<IIndexPopulator> populators)
public IndexRebuilder(IProfilingLogger pLogger, ILogger<IndexRebuilder> logger, IExamineManager examineManager, IEnumerable<IIndexPopulator> populators)
{
_pLogger = pLogger;
_populators = populators;
_logger = logger;
ExamineManager = examineManager;
@@ -65,7 +67,7 @@ namespace Umbraco.Examine
}
catch (Exception e)
{
_logger.LogError<IndexRebuilder>(e, "Index populating failed for populator {Populator}", populator.GetType());
_logger.LogError("Index populating failed for populator {Populator}", populator.GetType());
}
}
}

View File

@@ -7,9 +7,9 @@ namespace Umbraco.Core.Migrations.Upgrade.V_8_0_0.DataTypes
{
public class PreValueMigratorCollection : BuilderCollectionBase<IPreValueMigrator>
{
private readonly ILogger _logger;
private readonly ILogger<PreValueMigratorCollection> _logger;
public PreValueMigratorCollection(IEnumerable<IPreValueMigrator> items, ILogger logger)
public PreValueMigratorCollection(IEnumerable<IPreValueMigrator> items, ILogger<PreValueMigratorCollection> logger)
: base(items)
{
_logger = logger;
@@ -19,7 +19,7 @@ namespace Umbraco.Core.Migrations.Upgrade.V_8_0_0.DataTypes
public IPreValueMigrator GetMigrator(string editorAlias)
{
var migrator = this.FirstOrDefault(x => x.CanMigrate(editorAlias));
_logger.Debug("Getting migrator for \"{EditorAlias}\" = {MigratorType}", editorAlias, migrator == null ? "<null>" : migrator.GetType().Name);
_logger.LogDebug("Getting migrator for \"{EditorAlias}\" = {MigratorType}", editorAlias, migrator == null ? "<null>" : migrator.GetType().Name);
return migrator;
}
}

View File

@@ -6,6 +6,8 @@ using Umbraco.Core.Logging;
using Umbraco.Core.Models;
using Umbraco.Core.Models.PublishedContent;
using Umbraco.Core.Services;
using Microsoft.Extensions.Logging;
using ILogger = Microsoft.Extensions.Logging.ILogger;
namespace Umbraco.Web.PublishedCache
{
@@ -23,11 +25,11 @@ namespace Umbraco.Web.PublishedCache
private readonly IMediaTypeService _mediaTypeService;
private readonly IMemberTypeService _memberTypeService;
private readonly IPublishedContentTypeFactory _publishedContentTypeFactory;
private readonly ILogger<PublishedContentTypeCache> _logger;
private readonly ILogger _logger;
private readonly ReaderWriterLockSlim _lock = new ReaderWriterLockSlim();
// default ctor
public PublishedContentTypeCache(IContentTypeService contentTypeService, IMediaTypeService mediaTypeService, IMemberTypeService memberTypeService, IPublishedContentTypeFactory publishedContentTypeFactory, ILogger<PublishedContentTypeCache> logger)
public PublishedContentTypeCache(IContentTypeService contentTypeService, IMediaTypeService mediaTypeService, IMemberTypeService memberTypeService, IPublishedContentTypeFactory publishedContentTypeFactory, ILogger logger)
{
_contentTypeService = contentTypeService;
_mediaTypeService = mediaTypeService;
@@ -37,7 +39,7 @@ namespace Umbraco.Web.PublishedCache
}
// for unit tests ONLY
internal PublishedContentTypeCache(ILogger<PublishedContentTypeCache> logger, IPublishedContentTypeFactory publishedContentTypeFactory)
internal PublishedContentTypeCache(ILogger logger, IPublishedContentTypeFactory publishedContentTypeFactory)
{
_logger = logger;
_publishedContentTypeFactory = publishedContentTypeFactory;

View File

@@ -26,6 +26,8 @@ namespace Umbraco.Core.Runtime
private IFactory _factory;
// runtime state, this instance will get replaced again once the essential services are available to run the check
private RuntimeState _state = RuntimeState.Booting();
private readonly ILogger<TypeLoader> _typeLoaderLogger;
private readonly ILogger<Composers> _composerLogger;
private readonly IUmbracoBootPermissionChecker _umbracoBootPermissionChecker;
private readonly IGlobalSettings _globalSettings;
private readonly IConnectionStrings _connectionStrings;
@@ -35,6 +37,8 @@ namespace Umbraco.Core.Runtime
IUmbracoVersion umbracoVersion,
IIOHelper ioHelper,
ILogger logger,
ILogger<TypeLoader> typeLoaderLogger,
ILogger<Composers> composerLogger,
IProfiler profiler,
IUmbracoBootPermissionChecker umbracoBootPermissionChecker,
IHostingEnvironment hostingEnvironment,
@@ -53,6 +57,8 @@ namespace Umbraco.Core.Runtime
BackOfficeInfo = backOfficeInfo;
DbProviderFactoryCreator = dbProviderFactoryCreator;
_typeLoaderLogger = typeLoaderLogger;
_composerLogger = composerLogger;
_umbracoBootPermissionChecker = umbracoBootPermissionChecker;
Logger = logger;
@@ -67,7 +73,7 @@ namespace Umbraco.Core.Runtime
/// <summary>
/// Gets the logger.
/// </summary>
protected ILogger Logger { get; }
public ILogger Logger { get; }
protected IBackOfficeInfo BackOfficeInfo { get; }
@@ -165,7 +171,7 @@ namespace Umbraco.Core.Runtime
var databaseFactory = CreateDatabaseFactory();
// type finder/loader
var typeLoader = new TypeLoader(TypeFinder, AppCaches.RuntimeCache, new DirectoryInfo(HostingEnvironment.LocalTempPath), ProfilingLogger);
var typeLoader = new TypeLoader(TypeFinder, AppCaches.RuntimeCache, new DirectoryInfo(HostingEnvironment.LocalTempPath), _typeLoaderLogger, ProfilingLogger);
// re-create the state object with the essential services
_state = new RuntimeState(Configs.Global(), UmbracoVersion, databaseFactory, Logger);
@@ -285,7 +291,7 @@ namespace Umbraco.Core.Runtime
enableDisableAttributes = typeLoader.GetAssemblyAttributes(typeof(EnableComposerAttribute), typeof(DisableComposerAttribute));
}
var composers = new Composers(composition, composerTypes, enableDisableAttributes, ProfilingLogger);
var composers = new Composers(composition, composerTypes, enableDisableAttributes, _composerLogger, ProfilingLogger);
composers.Compose();
}
@@ -313,11 +319,11 @@ namespace Umbraco.Core.Runtime
{
_state.DetermineRuntimeLevel();
ProfilingLogger.Debug<CoreRuntime>("Runtime level: {RuntimeLevel} - {RuntimeLevelReason}", _state.Level, _state.Reason);
Logger.LogDebug("Runtime level: {RuntimeLevel} - {RuntimeLevelReason}", _state.Level, _state.Reason);
if (_state.Level == RuntimeLevel.Upgrade)
{
ProfilingLogger.Debug<CoreRuntime>("Configure database factory for upgrades.");
Logger.LogDebug("Configure database factory for upgrades.");
databaseFactory.ConfigureForUpgrade();
}
}

View File

@@ -16,7 +16,8 @@ namespace Umbraco.Web.Scheduling
private readonly HealthCheckCollection _healthChecks;
private readonly HealthCheckNotificationMethodCollection _notifications;
private readonly IScopeProvider _scopeProvider;
private readonly IProfilingLogger _logger;
private readonly IProfilingLogger _pLogger;
private readonly ILogger _logger;
private readonly IHealthChecksSettings _healthChecksSettingsConfig;
private readonly IServerRegistrar _serverRegistrar;
private readonly IRuntimeState _runtimeState;
@@ -28,7 +29,8 @@ namespace Umbraco.Web.Scheduling
HealthCheckCollection healthChecks,
HealthCheckNotificationMethodCollection notifications,
IMainDom mainDom,
IProfilingLogger logger,
IProfilingLogger pLogger,
ILogger logger,
IHealthChecksSettings healthChecksSettingsConfig,
IServerRegistrar serverRegistrar,
IRuntimeState runtimeState,
@@ -40,6 +42,7 @@ namespace Umbraco.Web.Scheduling
_mainDom = mainDom;
_scopeProvider = scopeProvider;
_runtimeState = runtimeState;
_pLogger = pLogger;
_logger = logger;
_healthChecksSettingsConfig = healthChecksSettingsConfig;
_serverRegistrar = serverRegistrar;
@@ -54,17 +57,17 @@ namespace Umbraco.Web.Scheduling
switch (_serverRegistrar.GetCurrentServerRole())
{
case ServerRole.Replica:
_logger.Debug<HealthCheckNotifier>("Does not run on replica servers.");
_logger.LogDebug("Does not run on replica servers.");
return true; // DO repeat, server role can change
case ServerRole.Unknown:
_logger.Debug<HealthCheckNotifier>("Does not run on servers with unknown role.");
_logger.LogDebug("Does not run on servers with unknown role.");
return true; // DO repeat, server role can change
}
// ensure we do not run if not main domain, but do NOT lock it
if (_mainDom.IsMainDom == false)
{
_logger.Debug<HealthCheckNotifier>("Does not run if not MainDom.");
_logger.LogDebug("Does not run if not MainDom.");
return false; // do NOT repeat, going down
}
@@ -72,7 +75,7 @@ namespace Umbraco.Web.Scheduling
// checks can be making service/database calls so we want to ensure the CallContext/Ambient scope
// isn't used since that can be problematic.
using (var scope = _scopeProvider.CreateScope())
using (_logger.DebugDuration<HealthCheckNotifier>("Health checks executing", "Health checks complete"))
using (_pLogger.DebugDuration<HealthCheckNotifier>("Health checks executing", "Health checks complete"))
{
var healthCheckConfig = _healthChecksSettingsConfig;

View File

@@ -15,11 +15,12 @@ namespace Umbraco.Web.Scheduling
private readonly IServerRegistrar _serverRegistrar;
private readonly IAuditService _auditService;
private readonly ILoggingSettings _settings;
private readonly IProfilingLogger _logger;
private readonly IProfilingLogger _pLogger;
private readonly ILogger _logger;
private readonly IScopeProvider _scopeProvider;
public LogScrubber(IBackgroundTaskRunner<RecurringTaskBase> runner, int delayMilliseconds, int periodMilliseconds,
IMainDom mainDom, IServerRegistrar serverRegistrar, IAuditService auditService, ILoggingSettings settings, IScopeProvider scopeProvider, IProfilingLogger logger)
IMainDom mainDom, IServerRegistrar serverRegistrar, IAuditService auditService, ILoggingSettings settings, IScopeProvider scopeProvider, IProfilingLogger pLogger, ILogger logger)
: base(runner, delayMilliseconds, periodMilliseconds)
{
_mainDom = mainDom;
@@ -27,6 +28,7 @@ namespace Umbraco.Web.Scheduling
_auditService = auditService;
_settings = settings;
_scopeProvider = scopeProvider;
_pLogger = pLogger;
_logger = logger;
}
@@ -41,7 +43,7 @@ namespace Umbraco.Web.Scheduling
}
catch (Exception ex)
{
_logger.LogError<LogScrubber>(ex, "Unable to locate a log scrubbing maximum age. Defaulting to 24 hours.");
_logger.LogError(ex, "Unable to locate a log scrubbing maximum age. Defaulting to 24 hours.");
}
return maximumAge;
@@ -58,23 +60,23 @@ namespace Umbraco.Web.Scheduling
switch (_serverRegistrar.GetCurrentServerRole())
{
case ServerRole.Replica:
_logger.Debug<LogScrubber>("Does not run on replica servers.");
_logger.LogDebug("Does not run on replica servers.");
return true; // DO repeat, server role can change
case ServerRole.Unknown:
_logger.Debug<LogScrubber>("Does not run on servers with unknown role.");
_logger.LogDebug("Does not run on servers with unknown role.");
return true; // DO repeat, server role can change
}
// ensure we do not run if not main domain, but do NOT lock it
if (_mainDom.IsMainDom == false)
{
_logger.Debug<LogScrubber>("Does not run if not MainDom.");
_logger.LogDebug("Does not run if not MainDom.");
return false; // do NOT repeat, going down
}
// Ensure we use an explicit scope since we are running on a background thread.
using (var scope = _scopeProvider.CreateScope())
using (_logger.DebugDuration<LogScrubber>("Log scrubbing executing", "Log scrubbing complete"))
using (_pLogger.DebugDuration<LogScrubber>("Log scrubbing executing", "Log scrubbing complete"))
{
_auditService.CleanLogs(GetLogScrubbingMaximumAge(_settings));
scope.Complete();

View File

@@ -38,7 +38,7 @@ namespace Umbraco.Web
{
_suspended = false;
LoggerExtensions.LogInformation(Current.Logger, "Resume document cache (reload:{Tried}).", _tried);
Current.Logger.LogInformation("Resume document cache (reload:{Tried}).", _tried);
if (_tried == false) return;
_tried = false;
@@ -74,7 +74,7 @@ namespace Umbraco.Web
{
_suspended = false;
LoggerExtensions.LogInformation(logger, "Resume indexers (rebuild:{Tried}).", _tried);
Current.Logger.LogInformation("Resume indexers (rebuild:{Tried}).", _tried);
if (_tried == false) return;
_tried = false;

View File

@@ -5,12 +5,13 @@ using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using CSharpTest.Net.Collections;
using Microsoft.Extensions.Logging;
using Umbraco.Core;
using Umbraco.Core.Exceptions;
using Umbraco.Core.Logging;
using Umbraco.Core.Models.PublishedContent;
using Umbraco.Core.Scoping;
using Umbraco.Web.PublishedCache.NuCache.Snap;
using ILogger = Microsoft.Extensions.Logging.ILogger;
namespace Umbraco.Web.PublishedCache.NuCache
{
@@ -35,6 +36,8 @@ namespace Umbraco.Web.PublishedCache.NuCache
private readonly IPublishedSnapshotAccessor _publishedSnapshotAccessor;
private readonly IVariationContextAccessor _variationContextAccessor;
private readonly ILogger _logger;
private readonly ILoggerFactory _loggerFactory;
private readonly ConcurrentDictionary<int, LinkedNode<ContentNode>> _contentNodes;
private LinkedNode<ContentNode> _root;
@@ -46,8 +49,6 @@ namespace Umbraco.Web.PublishedCache.NuCache
private readonly ConcurrentDictionary<Guid, int> _contentTypeKeyToIdMap;
private readonly ConcurrentDictionary<Guid, int> _contentKeyToIdMap;
private readonly ILogger<ContentStore> _logger;
private readonly ILogger<Snapshot> _snapShotLogger;
private readonly IPublishedModelFactory _publishedModelFactory;
private BPlusTree<int, ContentNodeKit> _localDb;
private readonly ConcurrentQueue<GenObj> _genObjs;
@@ -68,15 +69,15 @@ namespace Umbraco.Web.PublishedCache.NuCache
public ContentStore(
IPublishedSnapshotAccessor publishedSnapshotAccessor,
IVariationContextAccessor variationContextAccessor,
ILogger<ContentStore> logger,
ILogger<Snapshot> snapShotLogger,
ILogger logger,
ILoggerFactory loggerFactory,
IPublishedModelFactory publishedModelFactory,
BPlusTree<int, ContentNodeKit> localDb = null)
{
_publishedSnapshotAccessor = publishedSnapshotAccessor;
_variationContextAccessor = variationContextAccessor;
_logger = logger;
_snapShotLogger = snapShotLogger;
_loggerFactory = loggerFactory;
_publishedModelFactory = publishedModelFactory;
_localDb = localDb;
@@ -1311,7 +1312,7 @@ namespace Umbraco.Web.PublishedCache.NuCache
if (_nextGen == false && _genObj != null)
return new Snapshot(this, _genObj.GetGenRef()
#if DEBUG
, _snapShotLogger
, _loggerFactory.CreateLogger("Snapshot")
#endif
);
@@ -1347,7 +1348,7 @@ namespace Umbraco.Web.PublishedCache.NuCache
var snapshot = new Snapshot(this, _genObj.GetGenRef()
#if DEBUG
, _snapShotLogger
, _loggerFactory.CreateLogger("Snapshot")
#endif
);
@@ -1361,7 +1362,7 @@ namespace Umbraco.Web.PublishedCache.NuCache
public Snapshot LiveSnapshot => new Snapshot(this, _liveGen
#if DEBUG
, _snapShotLogger
, _loggerFactory.CreateLogger("Snapshot")
#endif
);
@@ -1549,7 +1550,7 @@ namespace Umbraco.Web.PublishedCache.NuCache
private readonly GenRef _genRef;
private long _gen;
#if DEBUG
private readonly ILogger<Snapshot> _logger;
private readonly ILogger _logger;
#endif
//private static int _count;
@@ -1557,7 +1558,7 @@ namespace Umbraco.Web.PublishedCache.NuCache
internal Snapshot(ContentStore store, GenRef genRef
#if DEBUG
, ILogger<Snapshot> logger
, ILogger logger
#endif
)
{
@@ -1575,7 +1576,7 @@ namespace Umbraco.Web.PublishedCache.NuCache
internal Snapshot(ContentStore store, long gen
#if DEBUG
, ILogger<Snapshot> logger
, ILogger logger
#endif
)
{

View File

@@ -6,6 +6,7 @@ using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using CSharpTest.Net.Collections;
using Microsoft.Extensions.Logging;
using Newtonsoft.Json;
using Umbraco.Core;
using Umbraco.Core.Cache;
@@ -42,8 +43,8 @@ namespace Umbraco.Web.PublishedCache.NuCache
private readonly IProfilingLogger _profilingLogger;
private readonly IScopeProvider _scopeProvider;
private readonly IDataSource _dataSource;
private readonly ILogger<PublishedSnapshotService> _logger;
private readonly ILogger<PublishedContentTypeCache> _publishedContentTypeCacheLogger;
private readonly Core.Logging.ILogger<PublishedSnapshotService> _logger;
private readonly ILoggerFactory _loggerFactory;
private readonly IDocumentRepository _documentRepository;
private readonly IMediaRepository _mediaRepository;
private readonly IMemberRepository _memberRepository;
@@ -84,7 +85,8 @@ namespace Umbraco.Web.PublishedCache.NuCache
public PublishedSnapshotService(PublishedSnapshotServiceOptions options, IMainDom mainDom, IRuntimeState runtime,
ServiceContext serviceContext, IPublishedContentTypeFactory publishedContentTypeFactory,
IPublishedSnapshotAccessor publishedSnapshotAccessor, IVariationContextAccessor variationContextAccessor,
IProfilingLogger profilingLogger, ILogger<PublishedSnapshotService> logger, ILogger<ContentStore> contentLogger, ILogger<ContentStore.Snapshot> snapshotLogger, ILogger<PublishedContentTypeCache> publishedContentTypeCacheLogger,
IProfilingLogger profilingLogger, Core.Logging.ILogger<PublishedSnapshotService> logger,
ILoggerFactory loggerFactory,
IScopeProvider scopeProvider,
IDocumentRepository documentRepository, IMediaRepository mediaRepository, IMemberRepository memberRepository,
IDefaultCultureAccessor defaultCultureAccessor,
@@ -106,7 +108,7 @@ namespace Umbraco.Web.PublishedCache.NuCache
_profilingLogger = profilingLogger;
_dataSource = dataSource;
_logger = logger;
_publishedContentTypeCacheLogger = publishedContentTypeCacheLogger;
_loggerFactory = loggerFactory;
_scopeProvider = scopeProvider;
_documentRepository = documentRepository;
_mediaRepository = mediaRepository;
@@ -152,16 +154,16 @@ namespace Umbraco.Web.PublishedCache.NuCache
// figure out whether it can read the databases or it should populate them from sql
_logger.LogInformation("Creating the content store, localContentDbExists? {LocalContentDbExists}", _localContentDbExists);
_contentStore = new ContentStore(publishedSnapshotAccessor, variationContextAccessor, contentLogger, snapshotLogger, publishedModelFactory, _localContentDb);
_contentStore = new ContentStore(publishedSnapshotAccessor, variationContextAccessor, _loggerFactory.CreateLogger("ContentStore"), _loggerFactory, publishedModelFactory, _localContentDb);
_logger.LogInformation("Creating the media store, localMediaDbExists? {LocalMediaDbExists}", _localMediaDbExists);
_mediaStore = new ContentStore(publishedSnapshotAccessor, variationContextAccessor, contentLogger, snapshotLogger, publishedModelFactory, _localMediaDb);
_mediaStore = new ContentStore(publishedSnapshotAccessor, variationContextAccessor, _loggerFactory.CreateLogger("ContentStore"), _loggerFactory, publishedModelFactory, _localMediaDb);
}
else
{
_logger.LogInformation("Creating the content store (local db ignored)");
_contentStore = new ContentStore(publishedSnapshotAccessor, variationContextAccessor, contentLogger, snapshotLogger, publishedModelFactory);
_contentStore = new ContentStore(publishedSnapshotAccessor, variationContextAccessor, _loggerFactory.CreateLogger("ContentStore"), _loggerFactory, publishedModelFactory);
_logger.LogInformation("Creating the media store (local db ignored)");
_mediaStore = new ContentStore(publishedSnapshotAccessor, variationContextAccessor, contentLogger, snapshotLogger, publishedModelFactory);
_mediaStore = new ContentStore(publishedSnapshotAccessor, variationContextAccessor, _loggerFactory.CreateLogger("ContentStore"), _loggerFactory, publishedModelFactory);
}
_domainStore = new SnapDictionary<int, Domain>();
@@ -1235,7 +1237,7 @@ namespace Umbraco.Web.PublishedCache.NuCache
var snapshotCache = new DictionaryAppCache();
var memberTypeCache = new PublishedContentTypeCache(null, null, _serviceContext.MemberTypeService, _publishedContentTypeFactory, _publishedContentTypeCacheLogger);
var memberTypeCache = new PublishedContentTypeCache(null, null, _serviceContext.MemberTypeService, _publishedContentTypeFactory, _loggerFactory.CreateLogger("PublishedContentTypeCache"));
var defaultCulture = _defaultCultureAccessor.DefaultCulture;
var domainCache = new DomainCache(domainSnap, defaultCulture);

View File

@@ -256,7 +256,7 @@ namespace Umbraco.Tests.Integration.Testing
OnTestTearDown(() => runtime.Terminate());
// This will create a db, install the schema and ensure the app is configured to run
InstallTestLocalDb(args.DatabaseFactory, runtime.ProfilingLogger, runtime.Configs.Global(), runtime.State, TestHelper.WorkingDirectory, out var connectionString);
InstallTestLocalDb(args.DatabaseFactory, runtime.Logger, runtime.Configs.Global(), runtime.State, TestHelper.WorkingDirectory, out var connectionString);
TestDBConnectionString = connectionString;
InMemoryConfiguration["ConnectionStrings:" + Constants.System.UmbracoConnectionName] = TestDBConnectionString;
}

View File

@@ -46,11 +46,11 @@ namespace Umbraco.Tests.PublishedContent
Composition.RegisterUnique<IPublishedModelFactory>(f => new PublishedModelFactory(f.GetInstance<TypeLoader>().GetTypes<PublishedContentModel>(), f.GetInstance<IPublishedValueFallback>()));
}
protected override TypeLoader CreateTypeLoader(IIOHelper ioHelper, ITypeFinder typeFinder, IAppPolicyCache runtimeCache,IProfilingLogger logger, IHostingEnvironment hostingEnvironment)
protected override TypeLoader CreateTypeLoader(IIOHelper ioHelper, ITypeFinder typeFinder, IAppPolicyCache runtimeCache,IProfilingLogger pLogger, IHostingEnvironment hostingEnvironment)
{
var baseLoader = base.CreateTypeLoader(ioHelper, typeFinder, runtimeCache, logger, hostingEnvironment);
var baseLoader = base.CreateTypeLoader(ioHelper, typeFinder, runtimeCache, pLogger, hostingEnvironment);
return new TypeLoader(typeFinder, runtimeCache, new DirectoryInfo(hostingEnvironment.LocalTempPath), logger, false,
return new TypeLoader(typeFinder, runtimeCache, new DirectoryInfo(hostingEnvironment.LocalTempPath), pLogger, false,
// this is so the model factory looks into the test assembly
baseLoader.AssembliesToScan
.Union(new[] {typeof(PublishedContentMoreTests).Assembly})

View File

@@ -95,11 +95,11 @@ namespace Umbraco.Tests.PublishedContent
}
protected override TypeLoader CreateTypeLoader(IIOHelper ioHelper, ITypeFinder typeFinder, IAppPolicyCache runtimeCache, IProfilingLogger logger, IHostingEnvironment hostingEnvironment)
protected override TypeLoader CreateTypeLoader(IIOHelper ioHelper, ITypeFinder typeFinder, IAppPolicyCache runtimeCache, IProfilingLogger pLogger, IHostingEnvironment hostingEnvironment)
{
var baseLoader = base.CreateTypeLoader(ioHelper, typeFinder, runtimeCache, logger, hostingEnvironment);
var baseLoader = base.CreateTypeLoader(ioHelper, typeFinder, runtimeCache, pLogger, hostingEnvironment);
return new TypeLoader(typeFinder, runtimeCache, new DirectoryInfo(hostingEnvironment.LocalTempPath), logger, false,
return new TypeLoader(typeFinder, runtimeCache, new DirectoryInfo(hostingEnvironment.LocalTempPath), pLogger, false,
// this is so the model factory looks into the test assembly
baseLoader.AssembliesToScan
.Union(new[] { typeof(PublishedContentTests).Assembly })

View File

@@ -256,13 +256,15 @@ namespace Umbraco.Tests.Runtimes
// create the very basic and essential things we need
var logger = new ConsoleLogger<StandaloneTests>(new MessageTemplates());
var composerLogger = new ConsoleLogger<Composers>(new MessageTemplates());
var typeLoaderLogger = new ConsoleLogger<TypeLoader>(new MessageTemplates());
var profiler = Mock.Of<IProfiler>();
var profilingLogger = new ProfilingLogger(logger, profiler);
var appCaches = AppCaches.Disabled;
var databaseFactory = Mock.Of<IUmbracoDatabaseFactory>();
var typeFinder = TestHelper.GetTypeFinder();
var ioHelper = TestHelper.IOHelper;
var typeLoader = new TypeLoader(typeFinder, appCaches.RuntimeCache, new DirectoryInfo(ioHelper.MapPath("~/App_Data/TEMP")), profilingLogger);
var typeLoader = new TypeLoader(typeFinder, appCaches.RuntimeCache, new DirectoryInfo(ioHelper.MapPath("~/App_Data/TEMP")), typeLoaderLogger, profilingLogger);
var runtimeState = Mock.Of<IRuntimeState>();
var hostingEnvironment = Mock.Of<IHostingEnvironment>();
var backOfficeInfo = TestHelper.GetBackOfficeInfo();

View File

@@ -42,6 +42,7 @@ namespace Umbraco.Tests.TestHelpers
var typeFinder = TestHelper.GetTypeFinder();
var typeLoader = new TypeLoader(typeFinder, NoAppCache.Instance,
new DirectoryInfo(ioHelper.MapPath("~/App_Data/TEMP")),
Mock.Of<ILogger<TypeLoader>>(),
logger,
false);

View File

@@ -102,6 +102,7 @@ namespace Umbraco.Tests.TestHelpers
new TestLastChanceFinder(),
new TestVariationContextAccessor(),
new ProfilingLogger(Mock.Of<ILogger>(), Mock.Of<IProfiler>()),
Mock.Of<ILogger<PublishedRouter>>(),
Mock.Of<IPublishedUrlProvider>(),
Mock.Of<IRequestAccessor>(),
container?.GetInstance<IPublishedValueFallback>() ?? Current.Factory.GetInstance<IPublishedValueFallback>(),

View File

@@ -101,14 +101,15 @@ namespace Umbraco.Tests.Testing.TestingTests
[Test]
public void Can_Mock_UmbracoApiController_Dependencies_With_Injected_UmbracoMapper()
{
var logger = Mock.Of<IProfilingLogger>();
var pLogger = Mock.Of<IProfilingLogger>();
var logger = Mock.Of<ILogger>();
var memberService = Mock.Of<IMemberService>();
var memberTypeService = Mock.Of<IMemberTypeService>();
var membershipProvider = new MembersMembershipProvider(memberService, memberTypeService, Mock.Of<IUmbracoVersion>(), TestHelper.GetHostingEnvironment(), TestHelper.GetIpResolver());
var membershipHelper = new MembershipHelper(Mock.Of<IHttpContextAccessor>(), Mock.Of<IPublishedMemberCache>(), membershipProvider, Mock.Of<RoleProvider>(), memberService, memberTypeService, Mock.Of<IPublicAccessService>(), AppCaches.Disabled, logger, ShortStringHelper, Mock.Of<IEntityService>());
var umbracoMapper = new UmbracoMapper(new MapDefinitionCollection(new[] { Mock.Of<IMapDefinition>() }));
var umbracoApiController = new FakeUmbracoApiController(Mock.Of<IGlobalSettings>(), Mock.Of<IUmbracoContextAccessor>(), Mock.Of<ISqlContext>(), ServiceContext.CreatePartial(), AppCaches.NoCache, logger, Mock.Of<IRuntimeState>(), umbracoMapper, Mock.Of<IPublishedUrlProvider>());
var umbracoApiController = new FakeUmbracoApiController(Mock.Of<IGlobalSettings>(), Mock.Of<IUmbracoContextAccessor>(), Mock.Of<ISqlContext>(), ServiceContext.CreatePartial(), AppCaches.NoCache, pLogger, Mock.Of<IRuntimeState>(), umbracoMapper, Mock.Of<IPublishedUrlProvider>());
Assert.Pass();
}

View File

@@ -181,7 +181,7 @@ namespace Umbraco.Tests.Testing
LocalizedTextService = new LocalizedTextService(new Dictionary<CultureInfo, Lazy<XDocument>>(), logger);
var typeLoader = GetTypeLoader(IOHelper, TypeFinder, appCaches.RuntimeCache, HostingEnvironment, proflogger, Options.TypeLoader);
var typeLoader = GetTypeLoader(IOHelper, TypeFinder, appCaches.RuntimeCache, HostingEnvironment, logger, proflogger, Options.TypeLoader);
var register = TestHelper.GetRegister();
@@ -369,30 +369,30 @@ namespace Umbraco.Tests.Testing
.ComposeCoreMappingProfiles();
}
protected virtual TypeLoader GetTypeLoader(IIOHelper ioHelper, ITypeFinder typeFinder, IAppPolicyCache runtimeCache, IHostingEnvironment hostingEnvironment, IProfilingLogger logger, UmbracoTestOptions.TypeLoader option)
protected virtual TypeLoader GetTypeLoader(IIOHelper ioHelper, ITypeFinder typeFinder, IAppPolicyCache runtimeCache, IHostingEnvironment hostingEnvironment, ILogger<TypeLoader> logger, IProfilingLogger pLogger, UmbracoTestOptions.TypeLoader option)
{
switch (option)
{
case UmbracoTestOptions.TypeLoader.Default:
return _commonTypeLoader ?? (_commonTypeLoader = CreateCommonTypeLoader(typeFinder, runtimeCache, logger, hostingEnvironment));
return _commonTypeLoader ?? (_commonTypeLoader = CreateCommonTypeLoader(typeFinder, runtimeCache, logger, pLogger, hostingEnvironment));
case UmbracoTestOptions.TypeLoader.PerFixture:
return _featureTypeLoader ?? (_featureTypeLoader = CreateTypeLoader(ioHelper, typeFinder, runtimeCache, logger, hostingEnvironment));
return _featureTypeLoader ?? (_featureTypeLoader = CreateTypeLoader(ioHelper, typeFinder, runtimeCache, logger, pLogger, hostingEnvironment));
case UmbracoTestOptions.TypeLoader.PerTest:
return CreateTypeLoader(ioHelper, typeFinder, runtimeCache, logger, hostingEnvironment);
return CreateTypeLoader(ioHelper, typeFinder, runtimeCache, logger, pLogger, hostingEnvironment);
default:
throw new ArgumentOutOfRangeException(nameof(option));
}
}
protected virtual TypeLoader CreateTypeLoader(IIOHelper ioHelper, ITypeFinder typeFinder, IAppPolicyCache runtimeCache, IProfilingLogger logger, IHostingEnvironment hostingEnvironment)
protected virtual TypeLoader CreateTypeLoader(IIOHelper ioHelper, ITypeFinder typeFinder, IAppPolicyCache runtimeCache, ILogger<TypeLoader> logger, IProfilingLogger pLogger, IHostingEnvironment hostingEnvironment)
{
return CreateCommonTypeLoader(typeFinder, runtimeCache, logger, hostingEnvironment);
return CreateCommonTypeLoader(typeFinder, runtimeCache, logger, pLogger, hostingEnvironment);
}
// common to all tests = cannot be overriden
private static TypeLoader CreateCommonTypeLoader(ITypeFinder typeFinder, IAppPolicyCache runtimeCache, IProfilingLogger logger, IHostingEnvironment hostingEnvironment)
private static TypeLoader CreateCommonTypeLoader(ITypeFinder typeFinder, IAppPolicyCache runtimeCache, ILogger<TypeLoader> logger, IProfilingLogger pLogger, IHostingEnvironment hostingEnvironment)
{
return new TypeLoader(typeFinder, runtimeCache, new DirectoryInfo(hostingEnvironment.LocalTempPath), logger, false, new[]
return new TypeLoader(typeFinder, runtimeCache, new DirectoryInfo(hostingEnvironment.LocalTempPath), logger, pLogger, false, new[]
{
Assembly.Load("Umbraco.Core"),
Assembly.Load("Umbraco.Web"),

View File

@@ -55,7 +55,7 @@ namespace Umbraco.Tests.UmbracoExamine
public static MediaIndexPopulator GetMediaIndexRebuilder(PropertyEditorCollection propertyEditors, IMediaService mediaService)
{
var mediaValueSetBuilder = new MediaValueSetBuilder(propertyEditors, new UrlSegmentProviderCollection(new[] { new DefaultUrlSegmentProvider(TestHelper.ShortStringHelper) }), GetMockUserService(), GetMockLogger(), TestHelper.ShortStringHelper, TestHelper.JsonSerializer);
var mediaValueSetBuilder = new MediaValueSetBuilder(propertyEditors, new UrlSegmentProviderCollection(new[] { new DefaultUrlSegmentProvider(TestHelper.ShortStringHelper) }), GetMockUserService(), Mock.Of<ILogger>(), TestHelper.ShortStringHelper, TestHelper.JsonSerializer);
var mediaIndexDataSource = new MediaIndexPopulator(null, mediaService, mediaValueSetBuilder);
return mediaIndexDataSource;
}
@@ -156,11 +156,16 @@ namespace Umbraco.Tests.UmbracoExamine
return mediaTypeServiceMock.Object;
}
public static IProfilingLogger GetMockLogger()
public static IProfilingLogger GetMockProfilingLogger()
{
return new ProfilingLogger(Mock.Of<ILogger>(), Mock.Of<IProfiler>());
}
public static ILogger<T> GetMockLogger<T>()
{
return Mock.Of<ILogger<T>>();
}
public static UmbracoContentIndex GetUmbracoIndexer(
IProfilingLogger profilingLogger,
IHostingEnvironment hostingEnvironment,
@@ -185,6 +190,9 @@ namespace Umbraco.Tests.UmbracoExamine
new UmbracoFieldDefinitionCollection(),
analyzer,
profilingLogger,
GetMockLogger<UmbracoContentIndex>(),
GetMockLogger<UmbracoExamineIndex>(),
GetMockLogger<UmbracoExamineIndexDiagnostics>(),
hostingEnvironment,
runtimeState,
languageService,

View File

@@ -36,6 +36,7 @@ namespace Umbraco.Tests.Web
typeFinder,
NoAppCache.Instance,
new DirectoryInfo(ioHelper.MapPath("~/App_Data/TEMP")),
Mock.Of<ILogger<TypeLoader>>(),
new ProfilingLogger(Mock.Of<ILogger>(), Mock.Of<IProfiler>())
)
);

View File

@@ -21,6 +21,7 @@ namespace Umbraco.Web.Macros
public class MacroRenderer : IMacroRenderer
{
private readonly IProfilingLogger _plogger;
private readonly ILogger<MacroRenderer> _logger;
private readonly IUmbracoContextAccessor _umbracoContextAccessor;
private readonly IContentSettings _contentSettings;
private readonly ILocalizedTextService _textService;
@@ -36,6 +37,7 @@ namespace Umbraco.Web.Macros
public MacroRenderer(
IProfilingLogger plogger,
ILogger<MacroRenderer> logger,
IUmbracoContextAccessor umbracoContextAccessor,
IContentSettings contentSettings,
ILocalizedTextService textService,
@@ -49,6 +51,7 @@ namespace Umbraco.Web.Macros
IHttpContextAccessor httpContextAccessor)
{
_plogger = plogger ?? throw new ArgumentNullException(nameof(plogger));
_logger = logger;
_umbracoContextAccessor = umbracoContextAccessor ?? throw new ArgumentNullException(nameof(umbracoContextAccessor));
_contentSettings = contentSettings ?? throw new ArgumentNullException(nameof(contentSettings));
_textService = textService;
@@ -111,7 +114,7 @@ namespace Umbraco.Web.Macros
if (macroContent == null) return null;
_plogger.Debug<MacroRenderer>("Macro content loaded from cache '{MacroCacheId}'", model.CacheIdentifier);
_logger.LogDebug("Macro content loaded from cache '{MacroCacheId}'", model.CacheIdentifier);
// ensure that the source has not changed
// note: does not handle dependencies, and never has
@@ -120,13 +123,13 @@ namespace Umbraco.Web.Macros
{
if (macroSource.Exists == false)
{
_plogger.Debug<MacroRenderer>("Macro source does not exist anymore, ignore cache.");
_logger.LogDebug("Macro source does not exist anymore, ignore cache.");
return null;
}
if (macroContent.Date < macroSource.LastWriteTime)
{
_plogger.Debug<MacroRenderer>("Macro source has changed, ignore cache.");
_logger.LogDebug("Macro source has changed, ignore cache.");
return null;
}
}
@@ -160,7 +163,7 @@ namespace Umbraco.Web.Macros
new TimeSpan(0, 0, model.CacheDuration)
);
_plogger.Debug<MacroRenderer>("Macro content saved to cache '{MacroCacheId}'", model.CacheIdentifier);
_logger.LogDebug("Macro content saved to cache '{MacroCacheId}'", model.CacheIdentifier);
}
// gets the macro source file name
@@ -282,7 +285,7 @@ namespace Umbraco.Web.Macros
}
catch (Exception e)
{
_plogger.LogWarning<MacroRenderer>(e, "Failed {MsgIn}", msgIn);
_logger.LogWarning(e, "Failed {MsgIn}", msgIn);
var macroErrorEventArgs = new MacroErrorEventArgs
{