41 lines
1.4 KiB
C#
41 lines
1.4 KiB
C#
|
using System.IO;
|
|||
|
using Microsoft.Extensions.Configuration;
|
|||
|
using Microsoft.Extensions.DependencyInjection;
|
|||
|
using Serilog;
|
|||
|
using SharedLibraryCore;
|
|||
|
using SharedLibraryCore.Configuration;
|
|||
|
|
|||
|
namespace IW4MAdmin.Application.Extensions
|
|||
|
{
|
|||
|
public static class StartupExtensions
|
|||
|
{
|
|||
|
private static ILogger _defaultLogger = null;
|
|||
|
|
|||
|
public static IServiceCollection AddBaseLogger(this IServiceCollection services,
|
|||
|
ApplicationConfiguration appConfig)
|
|||
|
{
|
|||
|
if (_defaultLogger == null)
|
|||
|
{
|
|||
|
var configuration = new ConfigurationBuilder()
|
|||
|
.AddJsonFile(Path.Join(Utilities.OperatingDirectory, "Configuration", "LoggingConfiguration.json"))
|
|||
|
.Build();
|
|||
|
|
|||
|
var loggerConfig = new LoggerConfiguration()
|
|||
|
.ReadFrom.Configuration(configuration);
|
|||
|
|
|||
|
|
|||
|
if (Utilities.IsDevelopment)
|
|||
|
{
|
|||
|
loggerConfig = loggerConfig.WriteTo.Console(
|
|||
|
outputTemplate:"[{Timestamp:yyyy-MM-dd HH:mm:ss.fff} {Server} {Level:u3}] {Message:lj}{NewLine}{Exception}")
|
|||
|
.MinimumLevel.Debug();
|
|||
|
}
|
|||
|
|
|||
|
_defaultLogger = loggerConfig.CreateLogger();
|
|||
|
}
|
|||
|
|
|||
|
services.AddLogging(builder => builder.AddSerilog(_defaultLogger, dispose: true));
|
|||
|
return services;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|