docker安装elk打印mybatis的sql语句
- 配置mybatis配置
- 配置logback.xml
- 调整时差
使用elk打印出mybatis的sql语句
配置mybatis配置
我是在nacos里配置的,只需要把以下配置配上就可以打印sql到日志,但是注意要把日志调成dug级别,因为mybatis默认是debug
复制代码
1
2
3
4
5mybatis-plus: configuration: log-impl: org.apache.ibatis.logging.slf4j.Slf4jImpl # log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
还有调一下nacos的日志级别打印,如果日志改成debug的话会在控制台打印很多东西
复制代码
1
2
3
4
5logging: level: com.alibaba.nacos.client.naming: WARN com.alibaba.nacos.client.config.impl: WARN
配置logback.xml
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69<?xml version="1.0" encoding="UTF-8"?> <configuration debug="false"> <!--获取springboot的yml配置信息--> <springProperty scope="context" name="applicationName" source="spring.application.name" defaultValue="default"/> <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径--> <property name="LOG_HOME" value="/home"/> <!--输出到控制台--> <appender name="console" class="ch.qos.logback.core.ConsoleAppender"> <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> <level>DEBUG</level> </filter> <withJansi>false</withJansi> <encoder> <!--<pattern>%d %p (%file:%line)- %m%n</pattern>--> <!--格式化输出:%d:表示日期 %thread:表示线程名 %-5level:级别从左显示5个字符宽度 %msg:日志消息 %n:是换行符--> <pattern>%d{yyyy-MM-dd HH:mm:ss} %highlight(%-5level) -- %boldMagenta([%thread]) %boldCyan(%logger) : %msg%n</pattern> <charset>UTF-8</charset> </encoder> </appender> <!-- 日志发送至logstash --> <appender name="logstash" class="net.logstash.logback.appender.LogstashTcpSocketAppender"> <!-- logstash的服务器地址和通信端口 --> <destination>xx.xx.xx.xx:5043</destination> <!-- encoder is required --> <encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder"> <!-- 在elasticsearch的index中追加applicationName字段 --> <customFields>{"applicationName":"${applicationName}"}</customFields> </encoder> </appender> <!-- 按照每天生成日志文件 --> <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <!--日志文件输出的文件名--> <FileNamePattern>${LOG_HOME}/TestWeb.log.%d{yyyy-MM-dd}.log</FileNamePattern> <!--日志文件保留天数--> <MaxHistory>30</MaxHistory> </rollingPolicy> <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符--> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern> </encoder> <!--日志文件最大的大小--> <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> <MaxFileSize>10MB</MaxFileSize> </triggeringPolicy> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <!-- 过滤的级别 --> <level>ERROR</level> <!-- 匹配时的操作:接收(记录) --> <onMatch>ACCEPT</onMatch> <!-- 不匹配时的操作:拒绝(不记录) --> <onMismatch>DENY</onMismatch> </filter> </appender> <!-- nacos以及feign连接池日志级别控制 --> <logger name="com.alibaba.nacos" level="warn" /> <logger name="org.apache.http.impl.conn.PoolingHttpClientConnectionManager" level="warn" /> <!-- 日志输出级别 --> <root level="DEBUG"> <appender-ref ref="logstash"/> <appender-ref ref="console"/> <appender-ref ref="FILE" /> </root> </configuration>
这里最主要是把日志级别调成debug模式,还有记得加上那两个logger标签的内容防止控制台一直不停打印nacos和feign日志
调整时差
可能你将jar包用docker运行发现半天不出日志,一看差很多个小时,那是因为docker默认是零时区,我们是东八区,所以要将项目调成东八区,我们可以将jar打成镜像运行
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16# 基础镜像 FROM kdvolder/jdk8 # author MAINTAINER wangzihao #指定东八区时区 ENV TZ Asia/Shanghai # VOLUME 指定了临时文件目录为/tmp。 # 其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp VOLUME /tmp #将当前mhd_transport.jar 复制到容器根目录下 ADD mhd_transport.jar mhd_transport.jar #暴露容器端口为8006 Docker镜像告知Docker宿主机应用监听了8006端口 EXPOSE 8006 # 运行jar包 ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/mhd_transport.jar"]
这样就写了一个dockerfile文件,把这个文件和jar包放在服务器同一个目录下,然后在dockerfile文件的目录下运行命令docker build -t mhd_transport .
这样就制作完成镜像了,然后运行镜像就可以了,如果没有搭建完elk日志,可以看我上一篇文章是搭建elk日志的
最后
以上就是坚定秋天最近收集整理的关于docker安装elk打印mybatis的sql语句的全部内容,更多相关docker安装elk打印mybatis内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复