同福

SpringBoot项目里的日志框架的使用

介绍

介绍

福哥在编写spring boot项目需要将日志信息保存起来,想到全家桶肯定会有打包比较好用的日志框架,就不去自己揉了

spring boot框架默认使用的日志框架是slf4j,我们今天就用它了

简单测试

因为系统默认包含了slf4j这个包了,我们可以直接使用

导入slf4j对象

为什么写出来?因为直接Alt+Enter会导入java.util.logging包

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

定义属性

如果手动导入了slf4j就可以直接识别了,否则就要自己选一下

Logger logger = LoggerFactory.getLogger(Logger.class);

63d6a3e77d73e3d9.jpg

保存日志

通过日志对象提供的方法保存各种等级的日志

logger.debug(String.format("user '%s' is logined with password '%s'", user, pwd));
logger.trace(String.format("user '%s' is logined with password '%s'", user, pwd));
logger.info(String.format("user '%s' is logined", user));
logger.warn(String.format("user '%s' is locked", user));
logger.error(String.format("user '%s' is incorrect", user));

日志配置

日志文件路径

如果要把日志信息保存起来需要配置参数,参数包括logging.file.name,logging.file.path两个,logging.file.name是保存日志的文件名,logging.file.path是保存日志的文件夹,如果设置了logging.file.name日志会保存到logging.file.name指定的文件当中,如果设置了logging.file.path日志会保存到logging.file.path指定的文件夹下的spring.log文件当中,如果两个参数都指定了,那么两个参数都会生效

logging.file.name=/tongfu.net/web/logs/TFHomeJAPI.log
logging.file.path=/tongfu.net/web/logs/TFHomeJAPI/

日志格式

日志格式肯定要自己来定义比较好,那么如何自定义日志格式呢?

日志格式语法

日志格式语法里包括很多变量,我们要设置自己的日志格式就需要了解这些变量的意义

  • %d:时间格式

  • %thread:线程

  • %level:等级

  • %logger:日志

  • %msg:信息

  • %n:换行

  • %-[n][x]:将变量[x]补位以达到长度[n]的要求

  • %[x]{n}:将变量[x]从左开始截取[n]个长度的字符

日志格式配置

日志格式包括显示到控制台的日志的格式和保存到文件的日志的格式两个,显示到控制台的日志的格式配置参数是logging.pattern.console,保存到文件的日志的格式配置参数是logging.pattern.file

logging.pattern.console=%d{yyyy-MM-dd} [%thread] %-5level %logger{50} -%msg%n
logging.pattern.file=%d{yyyy-MM-dd} [%thread] %-5level %logger{50} -%msg%n

效果

下面我们就来看看实际的效果