Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
lakernote
EasyAdmin
提交
aefdf8e8
E
EasyAdmin
项目概览
lakernote
/
EasyAdmin
9 个月 前同步成功
通知
14
Star
3
Fork
1
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
E
EasyAdmin
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
aefdf8e8
编写于
8月 19, 2022
作者:
lakernote
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Logback异常堆栈剔除一些不关心的类
上级
e383c3f2
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
32 addition
and
26 deletion
+32
-26
src/main/java/com/laker/admin/config/MybatisConfig.java
src/main/java/com/laker/admin/config/MybatisConfig.java
+3
-3
src/main/java/com/laker/admin/framework/ext/mybatis/PerformanceInterceptor.java
...r/admin/framework/ext/mybatis/PerformanceInterceptor.java
+27
-21
src/main/resources/application.yaml
src/main/resources/application.yaml
+1
-1
src/main/resources/logback.xml
src/main/resources/logback.xml
+1
-1
未找到文件。
src/main/java/com/laker/admin/config/MybatisConfig.java
浏览文件 @
aefdf8e8
...
...
@@ -6,9 +6,9 @@ import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerIntercept
import
com.laker.admin.framework.ext.mybatis.PerformanceInterceptor
;
import
com.laker.admin.framework.ext.mybatis.datapermission.LakerDataPermissionV2Interceptor
;
import
org.mybatis.spring.annotation.MapperScan
;
import
org.springframework.boot.autoconfigure.condition.ConditionalOnProperty
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.context.annotation.Profile
;
/**
* @author laker
...
...
@@ -52,13 +52,13 @@ public class MybatisConfig {
* @return
*/
@Bean
@
Profile
(
"test
"
)
@
ConditionalOnProperty
(
value
=
"javamelody.enabled"
,
havingValue
=
"false
"
)
public
PerformanceInterceptor
performanceInterceptor
()
{
PerformanceInterceptor
interceptor
=
new
PerformanceInterceptor
();
// sql美化打印
interceptor
.
setFormat
(
true
);
// 设置SQL超时时间
interceptor
.
setMaxTime
(
100
0
L
);
interceptor
.
setMaxTime
(
100L
);
// 写入日志
interceptor
.
setWriteInLog
(
true
);
return
interceptor
;
...
...
src/main/java/com/laker/admin/framework/ext/mybatis/PerformanceInterceptor.java
浏览文件 @
aefdf8e8
...
...
@@ -16,6 +16,8 @@
package
com.laker.admin.framework.ext.mybatis
;
import
com.baomidou.mybatisplus.core.toolkit.*
;
import
com.laker.admin.framework.aop.trace.SpanType
;
import
com.laker.admin.framework.aop.trace.TraceContext
;
import
lombok.Getter
;
import
lombok.Setter
;
import
lombok.experimental.Accessors
;
...
...
@@ -149,32 +151,36 @@ public class PerformanceInterceptor implements Interceptor {
if
(
index
>
0
)
{
originalSql
=
originalSql
.
substring
(
index
);
}
// 计算执行 SQL 耗时
long
start
=
SystemClock
.
now
();
Object
result
=
invocation
.
proceed
();
long
timing
=
SystemClock
.
now
()
-
start
;
// 格式化 SQL 打印执行结果
Object
target
=
PluginUtils
.
realTarget
(
invocation
.
getTarget
());
MetaObject
metaObject
=
SystemMetaObject
.
forObject
(
target
);
MappedStatement
ms
=
(
MappedStatement
)
metaObject
.
getValue
(
"delegate.mappedStatement"
);
StringBuilder
formatSql
=
new
StringBuilder
()
.
append
(
" Time:"
).
append
(
timing
)
.
append
(
" ms - ID:"
).
append
(
ms
.
getId
())
.
append
(
StringPool
.
NEWLINE
).
append
(
"Execute SQL:"
)
.
append
(
SQL_FORMATTER
.
format
(
originalSql
)).
append
(
StringPool
.
NEWLINE
);
// 计算执行 SQL 耗时
long
start
=
SystemClock
.
now
();
String
mapperId
=
ms
.
getId
();
TraceContext
.
addSpan
(
mapperId
,
SpanType
.
Mapper
);
Object
result
=
null
;
try
{
result
=
invocation
.
proceed
();
}
catch
(
Exception
e
)
{
throw
e
;
}
finally
{
TraceContext
.
stopSpan
(
this
.
getMaxTime
()
>=
1
?
this
.
getMaxTime
()
:
100
);
long
timing
=
SystemClock
.
now
()
-
start
;
// 格式化 SQL 打印执行结果
StringBuilder
formatSql
=
new
StringBuilder
()
.
append
(
" Time:"
).
append
(
timing
)
.
append
(
" ms - ID:"
).
append
(
mapperId
)
.
append
(
StringPool
.
NEWLINE
).
append
(
"Execute SQL:"
)
.
append
(
SQL_FORMATTER
.
format
(
originalSql
)).
append
(
StringPool
.
NEWLINE
);
if
(
this
.
isWriteInLog
())
{
if
(
this
.
getMaxTime
()
>=
1
&&
timing
>
this
.
getMaxTime
())
{
log
.
error
(
formatSql
.
toString
());
}
else
{
log
.
info
(
formatSql
.
toString
());
if
(
this
.
isWriteInLog
())
{
if
(
this
.
getMaxTime
()
>=
1
&&
timing
>
this
.
getMaxTime
())
{
log
.
error
(
formatSql
.
toString
());
}
else
{
log
.
warn
(
"Execute {}ms,Mapper:{}"
,
timing
,
mapperId
);
}
}
}
else
{
System
.
err
.
println
(
formatSql
.
toString
());
Assert
.
isFalse
(
this
.
getMaxTime
()
>=
1
&&
timing
>
this
.
getMaxTime
(),
" The SQL execution time is too large, please optimize ! "
);
}
return
result
;
}
...
...
src/main/resources/application.yaml
浏览文件 @
aefdf8e8
...
...
@@ -58,7 +58,7 @@ knife4j:
# 是否生产环境 屏蔽所有资源接口,一般这个用于生产环境 屏蔽资源,与上面二选一
# production: true
javamelody
:
enabled
:
tru
e
enabled
:
fals
e
# sa-token配置
sa-token
:
# token名称 (同时也是cookie名称)
...
...
src/main/resources/logback.xml
浏览文件 @
aefdf8e8
...
...
@@ -75,7 +75,7 @@
<!---->
<logger
name=
"org.snaker.engine"
level=
"ERROR"
/>
<!-- 不支持通配符 com.laker.admin.module.**.mapper-->
<logger
name=
"com.laker.admin.module"
level=
"
DEBUG
"
/>
<logger
name=
"com.laker.admin.module"
level=
"
INFO
"
/>
<!-- 日志输出级别 -->
<root
level=
"INFO"
>
<appender-ref
ref=
"DEFAULT"
/>
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录