自己的项目(不是资本家的项目)里用的,记录一下,主要功能:屏蔽掉 asp net core 请求日志,把错误日志分开,同时写入文件和终端输出,拿来即用 🙂
string outputTemplate = "[{Timestamp:yyyy-MM-dd HH:mm:ss} {Level:u3}] {SourceContext}: {Message:l}{NewLine}{Exception}";Log.Logger = new LoggerConfiguration()
#if DEBUG.MinimumLevel.Debug()
#else.MinimumLevel.Information()
#endif.MinimumLevel.Override("Microsoft", LogEventLevel.Warning).MinimumLevel.Override("Microsoft.EntityFrameworkCore", LogEventLevel.Warning).MinimumLevel.Override("OpenIddict", LogEventLevel.Warning).MinimumLevel.Override("Volo.Abp.AspNetCore.Mvc", LogEventLevel.Warning).MinimumLevel.Override("Volo.Abp.MultiTenancy", LogEventLevel.Warning).Enrich.FromLogContext()//.WriteTo.Async(c => c.File("Logs/logs.txt")).WriteTo.Async(c => c.Console(outputTemplate: outputTemplate)).WriteTo.Logger(lc => lc.Filter.ByIncludingOnly(x => x.Level != Serilog.Events.LogEventLevel.Error).WriteTo.File("logs/app.txt", rollingInterval: RollingInterval.Day, outputTemplate: outputTemplate, flushToDiskInterval: System.TimeSpan.FromSeconds(10))).WriteTo.Logger(lc => lc.Filter.ByIncludingOnly(x => x.Level == Serilog.Events.LogEventLevel.Error).WriteTo.File("logs/app_error.txt", rollingInterval: RollingInterval.Day, outputTemplate: outputTemplate, flushToDiskInterval: System.TimeSpan.FromSeconds(10))).CreateLogger();
