using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.Hosting; using Serilog; using System; namespace Wood.Admin.WebApi { /// /// program /// public class Program { /// /// main /// /// public static void Main(string[] args) { // 创建并配置Serilog Logger Log.Logger = new LoggerConfiguration() .MinimumLevel.Information() // 设置最低日志级别 .Enrich.FromLogContext() // 增加上下文信息 .WriteTo.Console(outputTemplate: "{Timestamp:HH:mm:ss} [{Level:u3}] {Message:lj}{NewLine}{Exception}") // 输出到控制台模板 .WriteTo.File("logs\\log.txt", rollingInterval: RollingInterval.Day,// 按天分割,每天滚动创建新的日志文件 retainedFileCountLimit: 90,// 只保存最近90天的日志 fileSizeLimitBytes: 10_485_760, // 文件大小限制为10MB (10 * 1024 * 1024 bytes) rollOnFileSizeLimit: true, // 达到文件大小限制时滚动 outputTemplate: "{NewLine}{NewLine}Date:{Timestamp:yyyy-MM-dd HH:mm:ss.fff} LogLevel:{Level}{NewLine}{Message}{NewLine}" + new string('-', 50) + "{NewLine}"// 模板 ) .CreateLogger(); try { // 创建Host CreateHostBuilder(args).Build().Run(); } catch (Exception ex) { Log.Fatal(ex, "Host terminated unexpectedly"); } finally { Log.CloseAndFlush(); } } /// /// 启用 /// /// /// public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) .UseSerilog() // 使用Serilog作为日志提供者 .ConfigureWebHostDefaults(webBuilder => { webBuilder.UseStartup(); webBuilder.ConfigureKestrel(options => { // 配置HTTP端口 options.ListenAnyIP(7629); // 配置HTTPS端口 //options.ListenLocalhost(5002, configure => configure.UseHttps()); }); }); } }