Files
ServerManagementUtils/robin/Logging/BuilderExtensions.cs
T
Alexandru-Victor Macocian 69fd4bfb62 Setup Robin base files
Setup base files for Robin monitoring service
2025-11-27 17:37:28 +01:00

45 lines
1.4 KiB
C#

using System.Core.Extensions;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
using Serilog;
using Serilog.Settings.Configuration;
namespace Robin.Logging;
public static class BuilderExtensions
{
public static IHostApplicationBuilder ClearProviders(this IHostApplicationBuilder builder)
{
builder.ThrowIfNull().Logging.ClearProviders();
return builder;
}
public static IHostApplicationBuilder AddSerilog(this IHostApplicationBuilder builder)
{
builder
.ThrowIfNull()
.Logging.ClearProviders()
.AddSerilog(
new LoggerConfiguration()
.ReadFrom.Configuration(
builder.Configuration,
new ConfigurationReaderOptions(
typeof(ConsoleLoggerConfigurationExtensions).Assembly
)
{
SectionName = "Serilog",
}
)
.Enrich.FromLogContext()
.WriteTo.Console(
outputTemplate: "[{Timestamp:yyyy-MM-dd HH:mm:ss}] {Level:u4}: [{SourceContext}]{NewLine}{Message:lj}{NewLine}{Exception}",
theme: Serilog.Sinks.SystemConsole.Themes.SystemConsoleTheme.Colored
)
.CreateLogger()
);
return builder;
}
}