using Microsoft.AspNetCore.Builder; using Microsoft.Extensions.DependencyInjection; using Serilog; using Serilog.Events; using SlnMesnac.Config; using System; using System.IO; namespace SlnMesnac.Serilog { /// /// Serilog /// public static class SerilogExtensions { public static IApplicationBuilder UseSerilogExtensions(this IApplicationBuilder app) { //启用Serilog中间件 app.UseSerilogRequestLogging(); #region 通过配置文件读取日志存放位置 var appConfig = app.ApplicationServices.GetService(); var logPath = $"{appConfig.logPath}/Logs/{DateTime.UtcNow:yyyy-MM-dd}/"; #endregion Log.Logger = new LoggerConfiguration().MinimumLevel.Information().WriteTo.Console() .WriteTo.File(Path.Combine(logPath, "Info.log"), LogEventLevel.Information, fileSizeLimitBytes: 5 * 1024) .WriteTo.File(Path.Combine(logPath, "Error.log"), LogEventLevel.Error, fileSizeLimitBytes: 5 * 1024) .WriteTo.File(Path.Combine(logPath, "Warn.log"), LogEventLevel.Warning, fileSizeLimitBytes: 5 * 1024) //.WriteTo.File(Path.Combine(logPath, "Debug.log"), LogEventLevel.Debug, fileSizeLimitBytes: 5 * 1024) .CreateLogger(); app.UseSerilogRequestLogging(); return app; } } }