java Spring Boot日志输出格式配置方法

前面 我们文章中 我们已经能把日志控制住了

但前面这些信息 又是什么呢?

如果不了解日志 看起来是挺痛苦的

其实 我们可以将日志分为 一下几个部分去读它

首先是这个日志的输出时间 是在什么时候发生的

然后是 日志的基本 之前我们也讲过 有信息 报错 警告等

然后是 pid 这个我们现在可能还没什么感觉 但当以后 许多服务器一起跑一个程序时 日志的pid可以帮你定位是哪个服务器输出的日志 不然就太混乱了

然后是所属线程 然后是 日志输出的类名/接口 告诉你是那个类输出的 这个的话 如果你的类名和前面的包名特别长 它会简化 例如 将前面的包都改成一个字母

然后 最后 就是我们自己在日志中输入的信息了

当然 如果我们不想这样操作 那也必须OK啊

这个是可以设置的

这里 我们打开项目的配置文件 application.yml 其他两种格式的语法也差不多 改个格式就好

我们可以现在下面 加上如下代码

javascript 复制代码
logging:
  pattern:
    console: "%d - %m %n"

这里 我们 d 是时间 m是信息 然后 n是换行 如果不加这个 百分号n 所有日志就都在同一行了 那根本没法看

然后 我们运行项目

可以看到 我们的日志变得简单了很多

就时间 然后就是 日志信息 n帮助他们完成了换行

首先 我们先这样 每次 %p 是等级

但我们会发现颜色没了

其实这是 其中的一个特性 %clr 这个属性 用在支持彩色的日志内容上 就可以了

这样 我们日志颜色就上去了

然后 pid的占位符 就比较特殊了 是 ${PID:-}

但是 这里显然 我们绑定了 clr 但颜色似乎不太对 这里我们需要设置一下

我们将代码改成

javascript 复制代码
# 设置日志的模板格式
logging:
  pattern:
    console: "%d %clr(%p) %clr(${PID:-}){magenta} %n"

在后面加上颜色设置 {magenta}

这样看着就差不多了

然后 后面是 三个减号 直接打上去就好了

然后 后面是 中括号 中间输出 线程名 首先 线程名 是 %t

我们可以这样写

直接自己写中括号 里面放个 %t

但是 这个宽度明显是不太一样呀

我们又涉及一个新的知识点 占位 这个位置 是 16位

直接 百分号 位数 标识符 这里标识符是 t

指定这个位置 不管有多少字 一定要占到 16个字的位置

然后 到我们的类名了

这个类名是青色的 占位 40 占位符是 %40c

我这里就直接写好啦

代码改成这样

javascript 复制代码
# 设置日志的模板格式
logging:
  pattern:
    console: "%d %clr(%p) %clr(${PID:-}){magenta} --- [%16t] %clr(%40c){cyan} %n"

但是 这有个问题 这样 40 会导致 它多出的位置 前面空格了 但按日志默认配置来讲 这里没有空格呀

而且最后面 也没有长度控制 我们可以这样

在左边 加一减号 告诉它 左对齐

然后 在最后面加一个长度控制 控制在 40 多出来的 你给我把他干掉

然后再次运行 这样 我们这个效果就出来了 不再超出 也左对齐了

那么 最后就很简单啦

一对分号 然后 日志输出内容

总体代码就是这样

javascript 复制代码
# 设置日志的模板格式
logging:
  pattern:
    console: "%d %clr(%p) %clr(${PID:-}){magenta} --- [%16t] %clr(%-40.40c){cyan} : %m %n"

运行结果如下

相关推荐
AllData公司负责人10 分钟前
通过Postgresql同步到Doris,全视角演示AllData数据中台核心功能效果,涵盖:数据入湖仓,数据同步,数据处理,数据服务,BI可视化驾驶舱
java·大数据·数据库·数据仓库·人工智能·python·postgresql
哆啦A梦158827 分钟前
20, Springboot3+vue3实现前台轮播图和详情页的设计
javascript·数据库·spring boot·mybatis·vue3
Hello.Reader34 分钟前
算法基础(十)——分治思想把大问题拆成小问题
java·开发语言·算法
一只大袋鼠36 分钟前
JavaWeb四种文件上传方式(下篇)
java·开发语言·springmvc·javaweb
TE-茶叶蛋1 小时前
深入研究 yudao-framework 模块:Java 编程能力提升指南
java·开发语言
逻辑驱动的ken1 小时前
Java高频考点场景题24
java·开发语言·面试·职场和发展·求职招聘
兔小盈1 小时前
多线程-(五)线程安全之内存可见性
java·开发语言·多线程
CeshirenTester2 小时前
LangChain的工具调用 vs 原生Skill API:性能差在哪儿?
java·人工智能·langchain
yaoxin5211232 小时前
400. Java 文件操作基础 - 使用 Buffered Stream I/O 读取文本文件
java·开发语言·python
Fox爱分享2 小时前
字节二面:10亿数据毫秒级查手机尾号后4位,答不出“异构索引”直接挂?
java·后端·面试