:sparkles:新增执行sql超时记录日志

This commit is contained in:
不做码农
2023-12-08 09:21:55 +08:00
parent 0bcdb1cdfc
commit c7e6e322bc
2 changed files with 18 additions and 0 deletions
+1
View File
@@ -39,6 +39,7 @@
"DemoMode": false, //是否演示模式 "DemoMode": false, //是否演示模式
"SingleLogin": false, //是否允许多设备/浏览器登录 "SingleLogin": false, //是否允许多设备/浏览器登录
"workId": 1, //雪花id唯一数字 "workId": 1, //雪花id唯一数字
"sqlExecutionTime": 5,//Sql执行时间超过多少秒记录日志并警报
"Upload": { "Upload": {
"uploadUrl": "http://localhost:8888", //本地存储资源访问路径 "uploadUrl": "http://localhost:8888", //本地存储资源访问路径
"localSavePath": "", //本地上传默认文件存储目录 wwwroot "localSavePath": "", //本地上传默认文件存储目录 wwwroot
+17
View File
@@ -4,6 +4,7 @@ using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Hosting;
using SqlSugar.IOC; using SqlSugar.IOC;
using ZR.Common;
using ZR.Model.System; using ZR.Model.System;
namespace ZR.ServiceCore.SqlSugar namespace ZR.ServiceCore.SqlSugar
@@ -202,6 +203,22 @@ namespace ZR.ServiceCore.SqlSugar
#endregion #endregion
} }
}; };
db.GetConnectionScope(configId).Aop.OnLogExecuted = (sql, pars) =>
{
var sqlExecutionTime = AppSettings.Get<int>("sqlExecutionTime");
if (db.Ado.SqlExecutionTime.TotalSeconds > sqlExecutionTime)
{
//代码CS文件名
var fileName = db.Ado.SqlStackTrace.FirstFileName;
//代码行数
var fileLine = db.Ado.SqlStackTrace.FirstLine;
//方法名
var FirstMethodName = db.Ado.SqlStackTrace.FirstMethodName;
var logInfo = $"Sql执行超时,用时{db.Ado.SqlExecutionTime.TotalSeconds}秒【{sql}】,fileName={fileName},line={fileLine},methodName={FirstMethodName}";
WxNoticeHelper.SendMsg("Sql请求时间过长",logInfo);
logger.Warn(logInfo);
}
};
} }
private static object GetParsValue(SugarParameter x) private static object GetParsValue(SugarParameter x)