using Serilog;
using Serilog.Sinks.Grafana.Loki;
using System;
namespace LearningOfficer.OA.Mobile.Api.CollectionExtensions
{
public static class SerilogServiceCollectionExtensions
{
///
/// 添加Serilog
///
///
///
///
public static IServiceCollection AddSerilog(this IServiceCollection services, IConfiguration configuration, IHostBuilder hostBuilder, IHostEnvironment environment)
{
var labels = new List
{
new LokiLabel
{
Key="app",
Value=environment.ApplicationName
},
new LokiLabel
{
Key="env",
Value=environment.EnvironmentName
},
};
// 配置 Serilog
var logger = new LoggerConfiguration()
.WriteTo.Console()
.Enrich.FromLogContext();
//if (environment.IsDevelopment())
//{
logger.MinimumLevel.Information()
.WriteTo.GrafanaLoki(configuration["GrafanaLoki:LokiUri"], labels, new List()
{
//"RequestId","Path"
}, tenant: configuration["GrafanaLoki:TenantId"]);
//}
//else
//{
// logger.MinimumLevel.Information()
// .WriteTo.GrafanaLoki(configuration["GrafanaLoki:LokiUri"], labels);
//}
Log.Logger = logger.CreateLogger();
services.AddSerilog(Log.Logger);
return services;
}
}
}