博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring Boot 项目实战(二)集成 Logback
阅读量:5296 次
发布时间:2019-06-14

本文共 4663 字,大约阅读时间需要 15 分钟。

一、前言

上篇介绍了 Spring Boot Maven 多模块项目的搭建方法以及 MyBatis 的集成。通常在调试接口或者排查问题时我们主要借助于日志,一个设计合理的日志文件配置能大大降低我们的排查难度,本篇主要介绍 Logback 集成步骤。

二、集成 Logback

2.1 引入依赖包

其实 Spring Boot 提供的父工程中已经包含了所依赖的 Logback jar 包,可通过项目父 pom 中的 「spring-boot-starter-parent」>> 「spring-boot-dependencies」找到 Logback 的三个依赖包。

ch.qos.logback
logback-access
${logback.version}
ch.qos.logback
logback-classic
${logback.version}
ch.qos.logback
logback-core
${logback.version}

2.2 简单日志配置

在自定义日志配置之前我们可以先尝试一下 Spring Boot 默认的日志配置,可通过修改 application.properties 文件中的配置项设置。

① 更改默认日志级别

默认情况下 Spring Boot 从控制台打印出来的日志级别只有 ERROR、WARN、INFO 这三种,如果需要打印 DEBUG 级别的日志,可以使用以下配置项设置。

logging.level.root = DEBUG

② 将日志输出到文件中

默认情况下 Spring Boot 只会在控制台打印日志,可以使用「 logging.path 」或「 logging.file 」其中一个配置项将日志输出到文件中。

logging.path = ./logs或logging.file = ./logs/demo.log

注意事项:

  • logging.path 和 logging.file 都可以是相对路径或者绝对路径
  • 但它们两个是不会叠加的,也就是说即使同时配置 logging.path = ./logs 与 logging.file = demo.log 也不会在 ./logs 目录下 生成 demo.log 文件,实际结果是最终只在项目根目录生成了 demo.log 文件。
  • 当只配置 logging.path 时,会在该 path 下生成一个 spring.log 文件,该文件名是固定的无法修改,若 path 不存在则会自动创建该路径。

2.3 自定义日志配置

我们可能需要将一些特定包或者特定级别的日志打印到单独的文件中方便排查问题,显然默认的日志配置并不能满足我们需求,需要我们自定义。

2.3.1 Logback XML 基础配置介绍

首先熟悉下常规的配置项,详见:

2.3.2 自定义日志配置文件内容解析

然后在 demo-web 层的 resources 目录下创建名为「 logback.xml 」的文件,具体内容如下:

demo
${log.charset}
${log.pattern}
${log.path}/common.log
true
${log.path}/common.%d{yyyy-MM-dd}.log
30
${log.charset}
${log.pattern}
${log.path}/error.log
true
${log.path}/error.%d{yyyy-MM-dd}.%i.log
100MB
ERROR
ACCEPT
DENY
${log.charset}
${log.pattern}
${log.path}/db.log
true
${log.path}/db.%d{yyyy-MM-dd}.log
${log.charset}
${log.pattern}
2.3.3 多环境自定义日志配置

然而,上述配置中 <property> 标签的值都是写死的,但我们的项目环境可能有多套,每套环境的日志配置都有所区别,这就需要借助 Spring Boot 提供的 <springProfile> 及 <springProperty> 标签解决。

① 首先将刚才新建的 「 logback.xml 」文件重命名为「 logback-spring.xml 」。

注:因为文件的命名与加载顺序有关,logback.xml 早于 application.properties 加载,而 logback-spring.xml 晚于 application.properties 加载。而且 logback-spring.xml 中 Spring Boot 提供了一些特定的配置项支持,如 <springProperty>、<springProfile>。

② 其次将 <property> 标签定义的配置项改为使用 <springProperty> 标签声明。

注:因为只有使用 <springProperty> 标签才能使用 application.properties 文件中的配置项,它的工作方式与 Logback 标准的 <property> 类似,source 指定 application.properties 文件中的配置项。defaultValue 为默认值。

③ 使用 <springProfile> 标签指定配置生效环境

注:上述配置生效的前提是在 application.properties 文件中指定生效环境(即 spring.profiles.active = dev )

④ 启动项目可以看到在项目根目录生成 logs 目录,目录中有三个日志文件(即 common.log 、db.log 、error.log ),访问 上篇的 接口后 db.log 输出如下日志:

[01-30 17:58:05,296] DEBUG [http-nio-8080-exec-1] selectById[159] - ==>  Preparing: SELECT `id`, `user_name` FROM `db_user` WHERE `id` = ? [01-30 17:58:05,317] DEBUG [http-nio-8080-exec-1] selectById[159] - ==> Parameters: 1(Integer)[01-30 17:58:05,373] DEBUG [http-nio-8080-exec-1] selectById[159] - <==      Total: 1

三、结语

至此 Spring Boot 集成 Logback 的具体步骤介绍完毕,我们自定义了一个简单的日志配置,也看到了最后的输出结果。后续将继续介绍其余中间件或者工具的集成步骤。

转载于:https://www.cnblogs.com/orzlin/p/10341973.html

你可能感兴趣的文章
使用Performance Analysis提高代码效率----By Yishi
查看>>
字符设备驱动程序--LED驱动
查看>>
iOS 静态库sdk项目依赖到工程项目测试
查看>>
h5 range应用 透明度+RGB
查看>>
原生JS不到30行,实现类似javascript MVC的功能-minTemplate
查看>>
POJ2478(SummerTrainingDay04-E 欧拉函数)
查看>>
L2-015. 互评成绩
查看>>
XMPP即时通讯(代码实现)
查看>>
MySQL数据库SQL语句基本操作
查看>>
前端开发的知识储备
查看>>
子查询四(在select子句中使用子查询)
查看>>
while循环
查看>>
如何得到资源文件中的文件
查看>>
python编码
查看>>
oracle合并列字段
查看>>
【洛谷习题】连续自然数和
查看>>
IFeatureClass对象
查看>>
【转载】C strings and C++ strings
查看>>
Linux远程登陆
查看>>
XXFSDDX HDU6119 区间合并模板(交叉区间去重)
查看>>