基本设置

日志框架

日志规范整改_xml

日志级别

日志级别从高到低: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. 日志规范整改_java_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没加载出来


阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6