前面一篇文章我们搭建了springboot的基本框架,实现了增删改查操作。

SpringBoot实现简单的增删改查(CURD)

logback的使用有两种方式,一是通过简单的系统配置,二是通过自定义配置的方式,今天这篇文章简单介绍一下通过系统配置方式实现日志记录。

0.logback

在springboot中,默认使用logback作为系统日志实现的框架,将日志输出到控制台,不会记录到日志文件。

在springboot中使用logback不需要添加额外的依赖,因为在spring-boot-starter或者spring-boot-starter-web中已经包含了logback的依赖。

1.系统方式控制台输出

日志级别 trace<debug<info<warn<error<fatal。默认级别为info,即默认打印info及其以上级别的日志,不区分大小写。

因为springboot中自带,所以我们可以直接添加代码就可以。

    private static final Log logger = LogFactory.getLog(SpringApplication.class);

通过上面的代码就可以看出,springboot的默认级别info以上的全部都输出了,但是这种方式只能实习控制台输出,不能将日志进行保存。

那么我们考虑实现持久化。

2.系统方式实现持久化

上面那种只在控制台输出的日志不方便保存和记录,所以我们要进行持久化,让日志保存下来。

我们需要修改application.properties或 application.yml 文件,因为我上一篇文章用的是application.yml文件,那么我们就修改这个文件:

# 日志配置
# 日志配置
logging:
  file:   #配置日志输出的文件
    path: log1234  #日志输出的位置,默认是项目的根目录,会自动生成文件夹,而且默认状态日志名字都叫spring.log
  level:  # 配置输出日志级别
    root: debug  #设置整个项目的日志输出级别默认info(root表示整个项目)

上面这个简单的配置就可以实现日志持久化。我们重启项目,访问相应接口,

首先看控制台输出:

然后找项目目录,发现新建了一个文件夹,文件夹名称就是我们刚才自定义的

我们打开这个文件夹,找到里面的spring.log文件,打开后可以发现我们刚才的输出日志。

3.优化

上面的配置方式比较简单,我们可以进行一些优化,比如我们可以加入日志的输出格式:

# 日志配置
logging:
  pattern: #配置日志输出格式
    file: "%d{yyyy-MM-dd} === [%thread] === %-5level === %logger{50} === - %msg%n"
  file:   #配置日志输出的文件
    path: log1234  #日志输出的位置,默认是项目的根目录,会自动生成文件夹,而且默认状态日志名字都叫spring.log
  level:  # 配置输出日志级别
    root: debug  #设置整个项目的日志输出级别默认info(root表示整个项目)

对于日志输出格式的解释如下:

   #    日志输出格式:
            #      %d表示日期时间,
            #      %thread表示线程名,
            #      %-5level:级别从左显示5个字符宽度
            #      %logger{50} 表示logger名字最长50个字符,否则按照句点分割。
            #      %msg:日志消息,
            #      %n是换行符
            #      %clr(对项){颜色名} 配置该项的颜色  #只在控制台有作用
            #      ${PID:- }  进程号
            #      %d{yyyy-MM-dd HH:mm:ss.SSS} %clr(%-5level){green} %clr(${PID:- }){magenta} [ %clr(%thread){red}] --- %clr(%logger{36}){blue} : %msg%n  #系统默认配置

file中除了可以配置path还可以配置name,效果基本一样,如果两个同时配置,那么name生效。

level中也可以继续修改,比如我们可以规定某个具体的包下执行的日志级别不同,那么就可以参考下面这样设置:

# 日志配置
logging:
  pattern: #配置日志输出格式
    file: "%d{yyyy-MM-dd} === [%thread] === %-5level === %logger{50} === - %msg%n"
  file:   #配置日志输出的文件
    path: log1234  #日志输出的位置,默认是项目的根目录,会自动生成文件夹,而且默认状态日志名字都叫spring.log
  level:  # 配置输出日志级别
    root: debug  #设置整个项目的日志输出级别默认info(root表示整个项目)
    site.longkui.app.mapper: INFO

注意,替换成自己项目的包名。

分类: java