From 0e2d9e6cba6b69a40c458767f8ae2d80d2b62c5b Mon Sep 17 00:00:00 2001 From: hwh <332078369@qq.com> Date: 星期一, 15 七月 2024 08:53:39 +0800 Subject: [PATCH] 操作日志bug --- Wms/Utility/Extension/ServiceCollectionExtensions.cs | 154 +++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 112 insertions(+), 42 deletions(-) diff --git a/Wms/Utility/Extension/ServiceCollectionExtensions.cs b/Wms/Utility/Extension/ServiceCollectionExtensions.cs index 2669a82..51e880d 100644 --- a/Wms/Utility/Extension/ServiceCollectionExtensions.cs +++ b/Wms/Utility/Extension/ServiceCollectionExtensions.cs @@ -7,11 +7,20 @@ using System.Text; using Serilog.Sinks.SystemConsole.Themes; using Serilog.Filters; +using Autofac.Core; +using Serilog.Formatting.Json; +using System.Linq; +using ZXing; +using SqlSugar.Extensions; namespace Utility { public static class ServiceCollectionExtensions { + internal static string LogFilePath(string fileName) => $@"Logs/{fileName}/{DateTime.Now.Year}.{DateTime.Now.Month}/log_.log"; + internal static readonly string seriCustomProperty = "seriPos"; + internal static readonly string logOutputTemplate = "鏃堕棿: {Timestamp:yyyy-MM-dd HH:mm:ss}{NewLine}鏉ユ簮: {SourceContext}{NewLine}鍐呭: [{Level:u3}] {Message}{NewLine}{Exception}{NewLine}"; + internal static readonly long? fileSize = 31457280L; const string template = "鏃堕棿: {Timestamp:yyyy-MM-dd HH:mm:ss}{NewLine}鏉ユ簮: {SourceContext}{NewLine}鍐呭: [{Level:u3}] {Message}{NewLine}{Exception}{NewLine}"; /// <summary> /// 娣诲姞閰嶇疆Serilog @@ -22,57 +31,118 @@ public static IServiceCollection AddConfigSerilog(this IServiceCollection services) { // 鍒涘缓Serilog璁板綍鏃ュ織 + //Log.Logger = new LoggerConfiguration() + // .MinimumLevel.Debug() + // .MinimumLevel.Override("Microsoft", LogEventLevel.Warning) + // .MinimumLevel.Override("Microsoft.AspNetCore", LogEventLevel.Fatal) + // .MinimumLevel.Override("Quartz", LogEventLevel.Warning) + // .MinimumLevel.Override("Serilog", LogEventLevel.Information) + // // 鍏ㄩ儴鏃ュ織鍐欏叆鍒癈onsole + // .WriteTo.Console() + // .WriteTo.Async(c => c.Console( + // theme: AnsiConsoleTheme.Literate, + // outputTemplate: template)) + // // Debug鏃ュ織鍐欏叆鍒版枃浠� + // .WriteTo.Logger(lg => lg.Filter.ByIncludingOnly(p => p.Level == LogEventLevel.Debug)) + // .WriteTo.Async(c => c.File( + // path: "Logs/Debug_.txt", + // rollingInterval: RollingInterval.Day, + // fileSizeLimitBytes: 1024 * 1024 * 10, + // retainedFileCountLimit: 100, + // outputTemplate: template, + // restrictedToMinimumLevel: LogEventLevel.Debug)) + // // Information鏃ュ織鍐欏叆鍒版枃浠� + // .WriteTo.Logger(lg => lg.Filter.ByIncludingOnly(p => p.Level == LogEventLevel.Information)) + // .WriteTo.Async(c => c.File( + // path: "Logs/Information_.txt", + // rollingInterval: RollingInterval.Day, + // fileSizeLimitBytes: 1024 * 1024 * 10, + // retainedFileCountLimit: 100, + // outputTemplate: template, + // restrictedToMinimumLevel: LogEventLevel.Information)) + // // Warning鏃ュ織鍐欏叆鍒版枃浠� + // .WriteTo.Logger(lg => lg.Filter.ByIncludingOnly(p => p.Level == LogEventLevel.Warning)) + // .WriteTo.Async(c => c.File( + // path: "Logs/Warning_.txt", + // rollingInterval: RollingInterval.Day, + // fileSizeLimitBytes: 1024 * 1024 * 10, + // retainedFileCountLimit: 100, + // outputTemplate: template, + // restrictedToMinimumLevel: LogEventLevel.Warning)) + // // Error鏃ュ織鍐欏叆鍒版枃浠� + // .WriteTo.Logger(lg => lg.Filter.ByIncludingOnly(p => p.Level == LogEventLevel.Error)) + // .WriteTo.Async(c => c.File( + // path: "Logs/Error_.txt", + // rollingInterval: RollingInterval.Day, + // fileSizeLimitBytes: 1024 * 1024 * 10, + // retainedFileCountLimit: 1000, + // outputTemplate: template, + // restrictedToMinimumLevel: LogEventLevel.Error)) + // .CreateLogger(); + + //Log.Logger = new LoggerConfiguration() + // .Enrich.FromLogContext() + // .WriteTo.Console() // 杈撳嚭鍒版帶鍒跺彴 + // .MinimumLevel.Debug() // 娴嬭瘯鏈�灏忚褰曠骇鍒� + // .WriteTo.Logger(lg => lg.Filter.ByIncludingOnly(p => { + // var result = p.Properties.FirstOrDefault(c => c.Key == "SourceContext").Value; + // if (result != null) + // { + // return result.ToString().Contains("妯″潡鍚�"); + // } + // return false; + // }).WriteTo + // .File(LogFilePath("妯″潡鐩綍"), rollingInterval: RollingInterval.Day, outputTemplate: template)) + // .CreateLogger(); Log.Logger = new LoggerConfiguration() - .MinimumLevel.Information() - .MinimumLevel.Override("Microsoft", LogEventLevel.Warning) // 鎺掗櫎Dotnet鑷甫鐨勬棩蹇� - //.MinimumLevel.Verbose() - //.MinimumLevel.Override("System", LogEventLevel.Debug) - //.MinimumLevel.Override("Microsoft", LogEventLevel.Debug) - //.MinimumLevel.Override("Microsoft.AspNetCore", LogEventLevel.Error) - //.MinimumLevel.Override("Microsoft.AspNetCore.Cors.Infrastructure.CorsService", LogEventLevel.Error) - //.MinimumLevel.Override("Microsoft.AspNetCore.Mvc", LogEventLevel.Error) - //.MinimumLevel.Override("Microsoft.AspNetCore.Hosting", LogEventLevel.Error) + .MinimumLevel.Debug() + .MinimumLevel.Override("Microsoft", LogEventLevel.Warning) + .MinimumLevel.Override("Microsoft.AspNetCore", LogEventLevel.Fatal) + .MinimumLevel.Override("Quartz", LogEventLevel.Warning) + .MinimumLevel.Override("Serilog", LogEventLevel.Information) // 鍏ㄩ儴鏃ュ織鍐欏叆鍒癈onsole .WriteTo.Console() .WriteTo.Async(c => c.Console( theme: AnsiConsoleTheme.Literate, outputTemplate: template)) - // Information鏃ュ織鍐欏叆鍒版枃浠� - .WriteTo.Async(c => c.File( - path: "Logs/Information_.txt", - rollingInterval: RollingInterval.Day, - fileSizeLimitBytes: 1024 * 1024 * 10, - retainedFileCountLimit: 100, - outputTemplate: template, - restrictedToMinimumLevel: LogEventLevel.Information)) // Debug鏃ュ織鍐欏叆鍒版枃浠� - .WriteTo.Async(c => c.File( - path: "Logs/Verbose.txt", - rollingInterval: RollingInterval.Day, - fileSizeLimitBytes: 1024 * 1024 * 10, - retainedFileCountLimit: 100, - outputTemplate: template, - restrictedToMinimumLevel: LogEventLevel.Verbose)) - // Warning鏃ュ織鍐欏叆鍒版枃浠� - .WriteTo.Async(c => c.File( - path: "Logs/Warning_.txt", - rollingInterval: RollingInterval.Day, - fileSizeLimitBytes: 1024 * 1024 * 10, - retainedFileCountLimit: 100, - outputTemplate: template, - restrictedToMinimumLevel: LogEventLevel.Warning)) - // Error鏃ュ織鍐欏叆鍒版枃浠� - .WriteTo.Async(c => c.File( - path: "Logs/Error_.txt", - rollingInterval: RollingInterval.Day, - fileSizeLimitBytes: 1024 * 1024 * 10, - retainedFileCountLimit: 1000, - outputTemplate: template, - restrictedToMinimumLevel: LogEventLevel.Error)) + //.WriteTo.Logger(lg => lg.Filter.ByIncludingOnly(p => p.Level == LogEventLevel.Debug)) + //.WriteTo.Async(c => c.File( + // path: "Logs/Debug_.txt", + // rollingInterval: RollingInterval.Day, + // fileSizeLimitBytes: 1024 * 1024 * 10, + // retainedFileCountLimit: 100, + // outputTemplate: template, + // restrictedToMinimumLevel: LogEventLevel.Debug)) + .WriteTo.Logger(lc => lc + .Filter.ByIncludingOnly((e) => e.Level == Serilog.Events.LogEventLevel.Information) + .WriteTo.File("Logs/info/.log", rollingInterval: RollingInterval.Day, rollOnFileSizeLimit: true, fileSizeLimitBytes: 1024 * 1024 * 10)) + .WriteTo.Logger(lc => lc + .Filter.ByIncludingOnly((e) => e.Level == Serilog.Events.LogEventLevel.Debug) + .WriteTo.File("Logs/debug/.log", rollingInterval: RollingInterval.Day, rollOnFileSizeLimit: true, fileSizeLimitBytes: 1024 * 1024 * 10)) + .WriteTo.Logger(lc => lc + .Filter.ByIncludingOnly((e) => e.Level == Serilog.Events.LogEventLevel.Error) + .WriteTo.File("Logs/error/.log", rollingInterval: RollingInterval.Day, rollOnFileSizeLimit: true, fileSizeLimitBytes: 1024 * 1024 * 10)) + .WriteTo.Logger(lc => lc + .Filter.ByIncludingOnly((e) => e.Level == Serilog.Events.LogEventLevel.Verbose) + .WriteTo.File("Logs/verbose/.log", rollingInterval: RollingInterval.Day, rollOnFileSizeLimit: true, fileSizeLimitBytes: 1024 * 1024 * 10)) + .WriteTo.Logger(lc => lc + .Filter.ByIncludingOnly((e) => e.Level == Serilog.Events.LogEventLevel.Warning) + .WriteTo.File("Logs/warning/.log", rollingInterval: RollingInterval.Day, rollOnFileSizeLimit: true, fileSizeLimitBytes: 1024 * 1024 * 10)) + .WriteTo.Logger(lc => lc + .Filter.ByIncludingOnly((e) => + { + var result = e.Properties.FirstOrDefault(c => c.Key == "ExternalSystems").Value; + if (result != null) + { + return result.ObjToBool(); + } + return false; + }) + .WriteTo.File("Logs/api/.log", rollingInterval: RollingInterval.Day, rollOnFileSizeLimit: true, fileSizeLimitBytes: 1024 * 1024 * 10)) .CreateLogger(); - services.AddSerilog(); - + services.AddSerilog(Log.Logger); return services; } } -- Gitblit v1.8.0