using System; using ILogger = Microsoft.Extensions.Logging.ILogger; namespace Jellyfin.Server.ServerSetupApp; /// /// Defines the Startup Logger. This logger acts an an aggregate logger that will push though all log messages to both the attached logger as well as the startup UI. /// public interface IStartupLogger : ILogger { /// /// Gets the topic this logger is assigned to. /// StartupLogTopic? Topic { get; } /// /// Adds another logger instance to this logger for combined logging. /// /// Other logger to rely messages to. /// A combined logger. IStartupLogger With(ILogger logger); /// /// Opens a new Group logger within the parent logger. /// /// Defines the log message that introduces the new group. /// A new logger that can write to the group. IStartupLogger BeginGroup(FormattableString logEntry); /// /// Adds another logger instance to this logger for combined logging. /// /// Other logger to rely messages to. /// A combined logger. /// The logger cateogry. IStartupLogger With(ILogger logger); /// /// Opens a new Group logger within the parent logger. /// /// Defines the log message that introduces the new group. /// A new logger that can write to the group. /// The logger cateogry. IStartupLogger BeginGroup(FormattableString logEntry); } /// /// Defines a logger that can be injected via DI to get a startup logger initialised with an logger framework connected . /// /// The logger cateogry. public interface IStartupLogger : IStartupLogger { /// /// Adds another logger instance to this logger for combined logging. /// /// Other logger to rely messages to. /// A combined logger. new IStartupLogger With(ILogger logger); /// /// Opens a new Group logger within the parent logger. /// /// Defines the log message that introduces the new group. /// A new logger that can write to the group. new IStartupLogger BeginGroup(FormattableString logEntry); }