
springboot统一日志处理
发布日期:2021-05-14 09:42:19
浏览次数:16
分类:精选文章
本文共 3847 字,大约阅读时间需要 12 分钟。
Spring Boot统一日志处理指南
统一日志处理能够将控制台打印的日志存储到log文件中,并将其分为info、warn、error三个文件。这一机制有助于快速定位系统运行时的问题。
1. 配置logback日志
删除现有配置
确保项目中没有现有的日志配置文件,特别是application.properties
中的日志相关设置。
安装日志插件
安装IDEA的grep-console
插件,以便在开发环境下更直观地查看日志输出。
创建logback配置文件
在resources
目录下创建logback-spring.xml
文件,按照以下内容进行配置:
INFO ${CONSOLE_LOG_PATTERN} UTF-8 ${log.path}/log_info.log %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n UTF-8 ${log.path}/info/log-info-%d{yyyy-MM-dd}.%i.log 100MB 15 warn ACCEPT DENY ${log.path}/log_warn.log %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n UTF-8 ${log.path}/warn/log-warn-%d{yyyy-MM-dd}.%i.log 100MB 15 warn ACCEPT DENY ${log.path}/log_error.log %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n UTF-8 ${log.path}/error/log-error-%d{yyyy-MM-dd}.%i.log 100MB 15 ERROR ACCEPT DENY
2. 集成异常处理
修改GlobalExceptionHandler.java
在全局异常处理类上添加@Slf4j
注解,并修改异常输出语句:
// 替换原有的e.printStackTrace();log.error("异常信息:{}", e.getMessage());
获取完整代码
请参考项目中GlobalExceptionHandler.java
的实现,确保所有异常信息都能通过日志渠道记录。
3. 提取堆栈信息
创建工具类
在guli-framework-common
模块下,创建util
包,并添加ExceptionUtil.java
工具类:
package com.guli.common.util;public class ExceptionUtil { public static String getMessage(Exception e) { StringWriter sw = null; PrintWriter pw = null; try { sw = new StringWriter(); pw = new PrintWriter(sw); e.printStackTrace(pw); pw.flush(); sw.flush(); } finally { if (sw != null) { try { sw.close(); } catch (IOException e1) { e1.printStackTrace(); } } if (pw != null) { pw.close(); } } return sw.toString(); }}
修改异常输出
在异常处理处使用工具类提取堆栈信息:
// 替换原有e.printStackTrace();log.error("异常信息:{}", ExceptionUtil.getMessage(e));
完善GuliException类
确保GuliException
类中包含toString()
方法:
@Overridepublic String toString() { return "GuliException{" + "message=" + this.getMessage() + ", code=" + code + '}';}
总结
通过以上配置和实现,可以实现统一日志处理,将日志按级别存储到相应的文件中。结合统一异常处理机制,系统将更容易定位运行时问题。
发表评论
最新留言
网站不错 人气很旺了 加油
[***.192.178.218]2025年04月14日 00时35分11秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Struts2-从值栈获取list集合数据(三种方式)
2019-03-08
vscode中快速生成vue模板
2019-03-08
demo---购物车的多条记录保存(cookie)
2019-03-09
参考图像
2019-03-09
设计模式(18)——中介者模式
2019-03-09
用JavaScript实现希尔排序
2019-03-09
python初学者容易犯的错误
2019-03-09
Qt之QImage无法获取图片尺寸(宽和高)
2019-03-09
推荐几篇近期必看的视觉综述,含GAN、Transformer、人脸超分辨、遥感等
2019-03-09
Java-类加载过程
2019-03-09
BUU-MISC-认真你就输了
2019-03-09
BUU-MISC-caesar
2019-03-09
【专题2:电子工程师 之 上位机】 之 【36.事件重载】
2019-03-09
【专题3:电子工程师 之 上位机】 之 【46.QT音频接口】
2019-03-09
一文学会JVM常见参数设置+调优经验(JDK1.8)
2019-03-09
一文理解设计模式--命令模式(Command)
2019-03-09