From 82820961ef6d924f91b766ed9a6ecf08d11c1da4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=8D=E5=81=9A=E7=A0=81=E5=86=9C?= <599854767@qq.com> Date: Fri, 14 Apr 2023 08:46:59 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96sql=E6=97=A5=E5=BF=97?= =?UTF-8?q?=E5=86=99=E5=85=A5=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ZR.Admin.WebApi/Extensions/DbExtension.cs | 38 +++++++++++++++++------ ZR.Admin.WebApi/NLog.config | 22 ++++++++++--- 2 files changed, 45 insertions(+), 15 deletions(-) diff --git a/ZR.Admin.WebApi/Extensions/DbExtension.cs b/ZR.Admin.WebApi/Extensions/DbExtension.cs index e9ddff3..2fe7fd7 100644 --- a/ZR.Admin.WebApi/Extensions/DbExtension.cs +++ b/ZR.Admin.WebApi/Extensions/DbExtension.cs @@ -40,7 +40,6 @@ namespace ZR.Admin.WebApi.Extensions DbType = (IocDbType)dbType, IsAutoCloseConnection = true } - //...增加其他数据库 }; SugarIocServices.AddSqlSugar(iocList); ICacheService cache = new SqlSugarCache(); @@ -59,23 +58,33 @@ namespace ZR.Admin.WebApi.Extensions private static void SetSugarAop(SqlSugarClient db, IocConfig iocConfig, ICacheService cache) { var config = db.GetConnection(iocConfig.ConfigId).CurrentConnectionConfig; - + string configId = config.ConfigId; - db.GetConnectionScope(configId).Aop.OnLogExecuting = (sql, pars) => + db.GetConnectionScope(configId).Aop.OnLogExecuted = (sql, pars) => { string log = $"【db{configId} SQL语句】{UtilMethods.GetSqlString(config.DbType, sql, pars)}\n"; - if (sql.StartsWith("UPDATE", StringComparison.OrdinalIgnoreCase) || sql.StartsWith("INSERT", StringComparison.OrdinalIgnoreCase)) - logger.Warn(log); - else if (sql.StartsWith("DELETE", StringComparison.OrdinalIgnoreCase) || sql.StartsWith("TRUNCATE", StringComparison.OrdinalIgnoreCase)) - logger.Error(log); - else + if (sql.TrimStart().StartsWith("SELECT", StringComparison.OrdinalIgnoreCase)) + { logger.Info(log); + } + else if (sql.StartsWith("UPDATE", StringComparison.OrdinalIgnoreCase) || sql.StartsWith("INSERT", StringComparison.OrdinalIgnoreCase)) + { + logger.Warn(log); + } + else if (sql.StartsWith("DELETE", StringComparison.OrdinalIgnoreCase) || sql.StartsWith("TRUNCATE", StringComparison.OrdinalIgnoreCase)) + { + logger.Error(log); + } + else + { + log = $"【db{configId} SQL语句】dbo.{sql} {string.Join(", ", pars.Select(x => x.ParameterName + " = " + GetParsValue(x)))};\n"; + logger.Info(log); + } }; db.GetConnectionScope(configId).Aop.OnError = (e) => { - Console.ForegroundColor = ConsoleColor.Red; - logger.Error(e, $"执行SQL出错:{e.Message}"); + logger.Error(e, $"执行SQL出错:{e.Message},{e.StackTrace}"); }; db.GetConnectionScope(configId).CurrentConnectionConfig.MoreSettings = new ConnMoreSettings() @@ -103,6 +112,15 @@ namespace ZR.Admin.WebApi.Extensions db.CodeFirst.SetStringDefaultLength(512).InitTables(entityes); } + private static object GetParsValue(SugarParameter x) + { + if (x.DbType == System.Data.DbType.String || x.DbType == System.Data.DbType.DateTime || x.DbType == System.Data.DbType.String) + { + return "'" + x.Value + "'"; + } + return x.Value; + } + /// /// 数据过滤 /// diff --git a/ZR.Admin.WebApi/NLog.config b/ZR.Admin.WebApi/NLog.config index f52f6b3..db70656 100644 --- a/ZR.Admin.WebApi/NLog.config +++ b/ZR.Admin.WebApi/NLog.config @@ -24,7 +24,18 @@ + + + + layout="${longdate} | ${uppercase:${level}} | ${aspnet-request-iP} | ${aspnet-request-headers:HeaderNames=userName} | ${aspnet-request-url} ${newline}${message}"/> --> + - +