mirror of
https://github.com/AlexMacocian/ServerManagementUtils.git
synced 2026-07-15 15:19:58 +00:00
69fd4bfb62
Setup base files for Robin monitoring service
45 lines
1.4 KiB
C#
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;
|
|
}
|
|
}
|