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}"/>
-->
+
-
+