// ========================================================================== // Squidex Headless CMS // ========================================================================== // Copyright (c) Squidex UG (haftungsbeschränkt) // All rights reserved. Licensed under the MIT license. // ========================================================================== using System; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Squidex.Domain.Apps.Entities.Apps; using Squidex.Infrastructure.Log; using Squidex.Pipeline; namespace Squidex.Config.Domain { public static class LoggingServices { public static void AddMyLoggingServices(this IServiceCollection services, IConfiguration config) { if (config.GetValue("logging:human")) { services.AddSingletonAs(_ => JsonLogWriterFactory.Readable()) .As(); } else { services.AddSingletonAs(_ => JsonLogWriterFactory.Default()) .As(); } var loggingFile = config.GetValue("logging:file"); if (!string.IsNullOrWhiteSpace(loggingFile)) { services.AddSingletonAs(_ => new FileChannel(loggingFile)) .As(); } var useColors = config.GetValue("logging:colors"); services.AddSingletonAs(_ => new ConsoleLogChannel(useColors)) .As(); services.AddSingletonAs(_ => new ApplicationInfoLogAppender(typeof(Program).Assembly, Guid.NewGuid())) .As(); services.AddSingletonAs() .As(); services.AddSingletonAs() .As(); services.AddSingletonAs() .As(); services.AddSingletonAs() .As(); services.AddSingletonAs() .As(); services.AddSingletonAs() .AsOptional(); } } }