using Microsoft.AspNetCore.Builder; using Microsoft.Extensions.DependencyInjection; using Serilog; using Serilog.Events; using SlnMesnac.Config; using System; using System.IO; #region << 版 本 注 释 >> /*-------------------------------------------------------------------- * 版权所有 (c) 2024 WenJY 保留所有权利。 * CLR版本:4.0.30319.42000 * 机器名称:LAPTOP-E0N2L34V * 命名空间:SlnMesnac.Serilog * 唯一标识:496f8d2b-70e3-4a05-ae18-a9b0fcd06b82 * * 创建者:WenJY * 电子邮箱:wenjy@mesnac.com * 创建时间:2024-03-27 21:58:35 * 版本:V1.0.0 * 描述: * *-------------------------------------------------------------------- * 修改人: * 时间: * 修改说明: * * 版本:V1.0.0 *--------------------------------------------------------------------*/ #endregion << 版 本 注 释 >> namespace SlnMesnac.Serilog { /// /// Serilog /// public static class SerilogExtensions { public static IApplicationBuilder UseSerilogExtensions(this IApplicationBuilder app) { // 获取当前程序所在的目录 string currentDirectory = Directory.GetCurrentDirectory(); //启用Serilog中间件 app.UseSerilogRequestLogging(); #region 通过配置文件读取日志存放位置 // var appConfig = app.ApplicationServices.GetService(); // var logPath = $"{appConfig.logPath}/Logs/{DateTime.UtcNow:yyyy-MM-dd}/"; var logPath = $"{currentDirectory}/Logs/{DateTime.UtcNow:yyyy-MM-dd}/"; #endregion Log.Logger = new LoggerConfiguration().MinimumLevel.Information().WriteTo.Console() .WriteTo.File(Path.Combine(logPath, "Info.log"), LogEventLevel.Information, rollingInterval: RollingInterval.Day) .WriteTo.File(Path.Combine(logPath, "Error.log"), LogEventLevel.Error, rollingInterval: RollingInterval.Day) .WriteTo.File(Path.Combine(logPath, "Warn.log"), LogEventLevel.Warning, rollingInterval: RollingInterval.Day) //.WriteTo.File(Path.Combine(logPath, "Debug.log"), LogEventLevel.Debug, fileSizeLimitBytes: 5 * 1024) .CreateLogger(); app.UseSerilogRequestLogging(); return app; } } }