diff --git a/src/Umbraco.Core/Components/CompositionExtensions.cs b/src/Umbraco.Core/Components/CompositionExtensions.cs index 2aef865994..4e3e4816e5 100644 --- a/src/Umbraco.Core/Components/CompositionExtensions.cs +++ b/src/Umbraco.Core/Components/CompositionExtensions.cs @@ -10,6 +10,7 @@ using Umbraco.Core.PropertyEditors; using Umbraco.Core.Strings; using Umbraco.Core.Sync; using Umbraco.Core._Legacy.PackageActions; +using Umbraco.Core.Logging.Viewer; namespace Umbraco.Core.Components { @@ -297,6 +298,37 @@ namespace Umbraco.Core.Components public static void SetMediaFileSystem(this Composition composition, Func filesystemFactory) => composition.RegisterUniqueFor(_ => filesystemFactory()); + /// + /// Sets the log viewer. + /// + /// The type of the log viewer. + /// The composition. + public static void SetLogViewer(this Composition composition) + where T : ILogViewer + { + composition.RegisterUnique(); + } + + /// + /// Sets the log viewer. + /// + /// The composition. + /// A function creating a log viewer. + public static void SetLogViewer(this Composition composition, Func factory) + { + composition.RegisterUnique(factory); + } + + /// + /// Sets the log viewer. + /// + /// A composition. + /// A log viewer. + public static void SetLogViewer(this Composition composition, ILogViewer viewer) + { + composition.RegisterUnique(_ => viewer); + } + #endregion } } diff --git a/src/Umbraco.Core/Logging/Viewer/LogViewerComposer.cs b/src/Umbraco.Core/Logging/Viewer/LogViewerComposer.cs index f3d1b5137f..5ddcb01078 100644 --- a/src/Umbraco.Core/Logging/Viewer/LogViewerComposer.cs +++ b/src/Umbraco.Core/Logging/Viewer/LogViewerComposer.cs @@ -8,7 +8,7 @@ namespace Umbraco.Core.Logging.Viewer { public void Compose(Composition composition) { - composition.RegisterUnique(_ => new JsonLogViewer()); + composition.SetLogViewer(_ => new JsonLogViewer()); } } }