日志规范整改
  TeH6icquiYXp 2023年11月02日 81 0


基本设置

日志框架

日志规范整改_spring

日志级别

日志级别从高到低:TRACE < DEBUG < INFO < WARN < ERROR < FATAL

获取应用名字

<springProperty scop="context" name="spring.application.name" source="spring.application.name" defaultValue="应用名"/>

用于引用名为 spring.application.name 的属性,该属性的来源为 spring.application.name,默认值为 应用名。

获取进程

<springProperty scop="context" name="logUUID" source="spring.logUUID" defaultValue="000000"/>

获取线程

<springProperty scop="context" name="logPID" source="spring.logPID" defaultValue="000000"/>

日志存放路径

<property name="log.path" value="/项目文件夹/ /logs/" />

内容输出控制

<pattern>
[%date]|%-5level|项目名|${logUUID}||${logPID}|%thread|%file:%line||%msg%n
</pattern>

日志内容+换行:%msg%n
文件名:第几行:%file:%line

过滤错误等级

<level>ERROR</level>

按日期和内存存储

<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <fileNamePattern>${log.path}/proc-版本名-项目名-%d{yyyyMMdd}-${host}-%-5i.log</fileNamePattern>
            <maxFileSize>50MB</maxFileSize>
            <maxHistory>7</maxHistory>
        </rollingPolicy>

SizeAndTimeBasedRollingPolicy 是按size和time,用-%-5i记录超内存的,%d{yyyyMMdd}记录超时间的。

定义慢sql日志时间的三种方法

MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录MySQL中响应时间超过阈值的语句,具体指运行时间超过long_query_time值的SQL,则会被记录到慢查询日志中。
long_query_time的默认值为10,意思是运行10秒以上的语句,收集后通过explain来分析
1. 慢sql日志想输出到 MySQL 日志中
更改方法2. 慢sql日志想输出到后台中

  1. 利用mybatis的config文件设置
<settings>
<setting name="defaultStatementTimeout" value="25"/>
</settings>
  1. 在 yml 配置文件中写
  2. 日志规范整改_日志_02

  3. 在mapper xml文件中对具体一个sql进行设置,方法为在select/update/insert节点中配置timeout属性,依然是以秒为单位表示超时时间并只作用于这一个sql.
<insert
  id="insertAuthor"
  parameterType="domain.blog.Author"
  flushCache="true"
  statementType="PREPARED"
  keyProperty=""
  keyColumn=""
  useGeneratedKeys=""
  timeout="20">

日志中存线程号和进程号的方法

java获取UUID

import java.util.UUID;

public class UUIDGenerator {
    public static void main(String[] args) {
        
        //随机生成一个UUID对象
        UUID uuid = UUID.randomUUID();
        System.out.println("生成的UUID为:" + uuid.toString());
        
        //通过给定的字符串名称和命名空间生成UUID对象
        UUID uuid2 = UUID.nameUUIDFromBytes("example_name".getBytes());
        System.out.println("生成的UUID2为:" + uuid2.toString());
    }
}

/*优点:
Java自带,无需引入额外的库和依赖;
简单易用,一行代码就可以生成UUID。

缺点:
生成的UUID可能会重复,虽然重复的概率较小,但是在高并发的情况下还是有可能发生;
无法控制生成的UUID的格式,只能生成标准的UUID*/
获得 UUID 的其他方法

java 代码要通过spring.factories文件配置到环境中
Springboot中PropertySource的数据结构及加载过程

问题解决

logback出现大量XXX_IS_UNDEFINED日志文件的问题:host没加载出来


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

上一篇: 什么是RedCap 下一篇: 已经是最后一篇
  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
TeH6icquiYXp