当前位置: 首页 > news >正文

青岛网站建设公司报价百度有什么办法刷排名

青岛网站建设公司报价,百度有什么办法刷排名,手机app网站制作,做360手机网站快速目录 环境: 一、mybatis-plus之sql分析日志输出 1.配置 2.验证 3.高级输出方式 二、业务日志输出到文件 1.添加log4j2依赖 2.排除logback依赖 3.新增log4j2的配置文件 4.添加配置 5.启动测试 6.给日志请求加个id 6.1、过滤器filter实现 6.2、测试 6.3、…

目录

环境:

一、mybatis-plus之sql分析日志输出

1.配置

 2.验证

3.高级输出方式

二、业务日志输出到文件

1.添加log4j2依赖

2.排除logback依赖

3.新增log4j2的配置文件

4.添加配置

5.启动测试

6.给日志请求加个id

6.1、过滤器filter实现

6.2、测试

6.3、request_id检索方式

7.结束


环境:

jdk:1.8

springboot版本:2.7.15

mybatis-plus版本:3.5.3.2

一、mybatis-plus之sql分析日志输出

为了生产中更快的分析问题以及解决问题,sql输出是非常有必要的,这里第一步是将sql输出到控制台便于调试时分析问题,优化sql

1.配置

日志输出操作很简单,在application.yml中配置:

mybatis-plus:configuration:log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

 2.验证

使用测试类进行测试,注意,本地调试可以使用这种方式打开日志,如果线上日志输出到文件,要用下面的高级输出方式

3.高级输出方式

使用数据库操作分析框架p6spy组件,进行sql分支,但是该组件比较消耗性能,生产环境中不建议使用,但是如果想玩玩的话,大家可以试试。

p6spy快速配置:p6spy快速配置

二、业务日志输出到文件

为什么要进行日志输出呢?

因为生产环境想要知道程序是否是按照我们的意愿正常运行的,通过日志输出是最直观最有效的方式。

日志文件输出我们一般常用日志输出框架有两种:一种是log4j2、另一种是logback。而springboot中默认使用的是logback框架,考虑到性能原因大多数生产环境使用日志框架为log4j2,所以这里也以log4j2框架进行整合和练习。

1.添加log4j2依赖

        <!-- 引入log4j2依赖 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-log4j2</artifactId></dependency><!-- 加上这个才能辨认到log4j2-*.yml文件 --><dependency><groupId>com.fasterxml.jackson.dataformat</groupId><artifactId>jackson-dataformat-yaml</artifactId></dependency>

为何用jackson-dataformat-yaml包?问就是可读性好~,log4j2官方采用的是.xml,.json或者.jsn这种方式来做配置,我们既然使用了springboot那当然要用yml文件来配置了,而这个包就是为了程序启动时辨认log4j2-*.yml文件的。

2.排除logback依赖

<!-- 全局排除spring-boot-starter-logging相关所有依赖 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-logging</artifactId><exclusions><exclusion><groupId>*</groupId><artifactId>*</artifactId></exclusion></exclusions></dependency>

3.新增log4j2的配置文件

Configuration:#Configuration后面的status,这个用于设置log4j2自身内部的信息输出,可以不设置,当设置成trace时,你会看到log4j2内部各种详细输出#日志级别以及优先级排序: ALL < TRACE < DEBUG < INFO < WARN < ERROR < FATAL < OFFstatus: info# 定义全局变量Properties:Property:#日志存放路径- name: log.pathvalue: /Users/liuph/dev/space/log/iterge_pre#定义日志输出目的地,内容和格式等Appenders:# 控制台日志Console:name: consoletarget: SYSTEM_OUT#输出日志的格式PatternLayout:Pattern: "[%X{request_id}] %-d{yyyy-MM-dd HH:mm:ss} - [%p] [%C{1}:%L %M] %m%n"ThresholdFilter:level: infoonMatch: ACCEPTonMismatch: DENY# 文件日志RollingFile:- name: iterge_pre#日志存储路径fileName: "${log.path}/info.log"#历史日志封存路径 其中%d{yyyy-MM-dd}表示了日志的时间单位是天filePattern: "${log.path}/iterge_pre_%d{yyyy-MM-dd}.log"PatternLayout:Pattern: "[%X{request_id}] %-d{yyyy-MM-dd HH:mm:ss} - [%p] [%C{1}:%L %M] %m%n"#归档设置Policies:#按时间间隔归档TimeBasedTriggeringPolicy:#时间间隔 单位由filePattern的%d日期格式指定, 此处配置代表每一天归档一次interval: 1#是否对interval取模,决定了下一次触发的时间点modulate: true#按照日志文件的大小: size表示当前日志文件的最大size,支持单位:KB/MB/GB#SizeBasedTriggeringPolicy:#size: 50MBThresholdFilter:level: infoonMatch: ACCEPTonMismatch: DENYLoggers:Root:level: info#关联的Appender, 只有定义了logger并引入的appender,appender才会生效AppenderRef:- ref: console- ref: iterge_pre

4.添加配置

在配置文件中添加需要生效的log4j2的配置信息,我这里生效的配置文件是application-dev.yml,所以我在application-dev.yml中加入以下配置代码:

#这里配置日志生效文件,用于多环境部署时切换(通常部署会有三个环境:线上、测试、开发)
logging:config: classpath:log4j2/log4j2-dev.yml

项目配置文件目录:

5.启动测试

如上图:日志打印格式已经按照我们配置的打印了,这里大家可能问这个“[]”是什么含义?接着往下看。

6.给日志请求加个id

为什么给日志请求加个id?这里当然是为了方便了,举个例子:当你在线上查询问题时,一段代码你你可能加了10个日志输出点,而线上业务日志又有很多的情况下,你难道要一行一行的检索日志来看吗?这时候当然请求id检索更香啊!

6.1、过滤器filter实现

新建过滤器LogTraceFilter,代码中的“request_id”要和log4j2的配置文件中设置的一致!!!

(这里通过拦截器实现也是可以的)

@WebFilter(filterName = "LogTraceFilter", urlPatterns = "/*")
@Component
public class LogTraceFilter implements Filter {@Overridepublic void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {MDC.put("request_id", UUID.randomUUID().toString().replace("-", ""));filterChain.doFilter(servletRequest, servletResponse);MDC.remove("request_id");}}

6.2、测试

controller代码:

    @GetMapping("/test/get")public User getUser(Integer id){log.info("请求入参:{}",id);User user = userMapper.selectById(id);log.info("请求结果:{}",user.getName());log.info("你看,这样很明显知道我们是一次请求的log吧!");return user;}

运行结果: 

由此可以看出同一个请求的日志id都是相同的。

6.3、request_id检索方式

7.结束

http://www.dinnco.com/news/53990.html

相关文章:

  • mysql优化 wordpress网站关键词优化方案
  • 上海前端baiduseoguide
  • 北京网站开发一般多少钱windows优化
  • 做网站找沈阳横纵网络百度流量统计
  • 网站制作软件名字线做玄幻小说排行榜百度风云榜
  • 音乐网站手机模板seo优化网站的注意事项
  • wordpress显示标题网站优化公司大家好
  • 设计公司的网站详情搜索引擎营销优化策略有哪些
  • 上海防伪网站建设免费开源网站
  • 设计彩票网站开发最有效的恶意点击软件
  • 三 网站建设软件开发公司有哪些
  • 网页编辑软件手机版台州seo快速排名
  • 可以自己做攻略的网站手机建站平台
  • 交换机做网站网站优化企业排名
  • 做网站看好金石网络优化合作平台
  • 雄县没有做网站的公司如何提升网站seo排名
  • 广州注册公司自助办理锦州网站seo
  • 百度首页网站推广多少钱一年做一个公司网站大概要多少钱
  • 网站开发一个多少钱软文范文大全
  • 介绍网站开发的意义google seo怎么做
  • 大学网站建设专业深圳纯手工seo
  • 做网站建设科技公司长沙seo优化推荐
  • 做外贸营销网站如何做个网站推广自己产品
  • 怀化建设局网站郑州百度推广公司电话
  • 建站管理后台引流推广平台软件
  • 佛山制作网站设计报价seo排名优化是什么
  • 最近做网站开发有前途没aso关键词排名优化是什么
  • 运城网站建设公司有多少专业排名优化工具
  • java开发企业网站开发文档6seo查询 站长之家
  • 做留言的网站无需下载直接进入的网站的代码