|
|
|
@ -4,7 +4,11 @@ using Microsoft.AspNetCore.Hosting;
|
|
|
|
|
using Microsoft.Extensions.Configuration;
|
|
|
|
|
using Microsoft.Extensions.Hosting;
|
|
|
|
|
using Serilog;
|
|
|
|
|
using Serilog.Formatting.Elasticsearch;
|
|
|
|
|
using Serilog.Formatting.Json;
|
|
|
|
|
using Serilog.Settings.Configuration;
|
|
|
|
|
using Serilog.Sinks.Elasticsearch;
|
|
|
|
|
using Serilog.Sinks.RollingFile;
|
|
|
|
|
using System;
|
|
|
|
|
using System.IO;
|
|
|
|
|
using System.Text;
|
|
|
|
@ -16,17 +20,8 @@ namespace Platform
|
|
|
|
|
public static void Main(string[] args)
|
|
|
|
|
{
|
|
|
|
|
Console.OutputEncoding = Encoding.UTF8;
|
|
|
|
|
|
|
|
|
|
var config = new ConfigurationBuilder().SetBasePath(Directory.GetCurrentDirectory())
|
|
|
|
|
.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
|
|
|
|
|
.AddJsonFile($"appsettings.{Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT")}.json", optional: true, reloadOnChange: true)
|
|
|
|
|
.Build();
|
|
|
|
|
|
|
|
|
|
Log.Logger = new LoggerConfiguration()
|
|
|
|
|
.ReadFrom.Configuration(config, ConfigurationAssemblySource.AlwaysScanDllFiles)
|
|
|
|
|
.WriteTo.Console()
|
|
|
|
|
//.WriteTo.File("logs/log.txt", rollOnFileSizeLimit: true, fileSizeLimitBytes: 100 * 1024 * 1024, rollingInterval: RollingInterval.Infinite)
|
|
|
|
|
.CreateLogger();
|
|
|
|
|
IConfigurationRoot config = GetConfig();
|
|
|
|
|
Log.Logger = GetLogger(config);
|
|
|
|
|
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
@ -49,5 +44,30 @@ namespace Platform
|
|
|
|
|
Log.CloseAndFlush();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private static IConfigurationRoot GetConfig()
|
|
|
|
|
{
|
|
|
|
|
return new ConfigurationBuilder().SetBasePath(Directory.GetCurrentDirectory())
|
|
|
|
|
.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
|
|
|
|
|
.AddJsonFile($"appsettings.{Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT")}.json", optional: true, reloadOnChange: true)
|
|
|
|
|
.Build();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private static ILogger GetLogger(IConfigurationRoot config)
|
|
|
|
|
{
|
|
|
|
|
return new LoggerConfiguration()
|
|
|
|
|
.ReadFrom.Configuration(config, ConfigurationAssemblySource.AlwaysScanDllFiles)
|
|
|
|
|
.WriteTo.Console()
|
|
|
|
|
.WriteTo.Elasticsearch(new ElasticsearchSinkOptions(new Uri(config.GetConnectionString("Log")))
|
|
|
|
|
{
|
|
|
|
|
AutoRegisterTemplate = true,
|
|
|
|
|
AutoRegisterTemplateVersion = AutoRegisterTemplateVersion.ESv7,
|
|
|
|
|
CustomFormatter = new ExceptionAsObjectJsonFormatter(renderMessage: true),
|
|
|
|
|
FailureCallback = e => Console.WriteLine("Unable to submit event " + e.MessageTemplate),
|
|
|
|
|
EmitEventFailure = EmitEventFailureHandling.WriteToSelfLog |EmitEventFailureHandling.WriteToFailureSink | EmitEventFailureHandling.RaiseCallback,
|
|
|
|
|
FailureSink = new RollingFileSink("logs/log.json", new JsonFormatter(), 100 * 1024 * 1024, 1, Encoding.UTF8)
|
|
|
|
|
})
|
|
|
|
|
.CreateLogger();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|