博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Springboot + slf4j日志
阅读量:3933 次
发布时间:2019-05-23

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

slf4j

springboot推荐的日志类库是slf4j、日志系统为logback。slf4j有个接口叫Logger,提供了丰富的日志输出方法,包含了所有日志级别的输出。使用方式也是特别的简单,用slf4j的工厂类获取一个logger ,然后就可以输出日志了,默认情况下,日志只会输出到控制台。

使用

package cn.com.infosec.netseal.common.core.controller;import org.slf4j.Logger;import org.slf4j.LoggerFactory;/** * web层通用数据处理 * * @author lhx */public class BaseController {
protected final Logger logger = LoggerFactory.getLogger(BaseController.class);}

但是这样有一个缺点,就是要在用到的类上都写一句LoggerFactory.getLogger(),是不是很繁琐

可以集成lombok,使用@slf4j注解

org.projectlombok
lombok

配置方式1:application.properties+logback-spring.xml

日志的输出路径和日志文件名由application文件指定时,需要注意application文件和logback配置文件两者的加载顺序问题

在application.properties文件中配置logging.file、logging.path可以控制日志文件的输出路径和文件名。

不过有些细节需要注意,否则配置不生效

logging.path=D:/data/myloglogging.file=mylog.log

注意windos的路径(后面配置文件中也是/),此时并不会在d盘下生成日志文件,只会在项目的根目录下创建一个myLog.log的文件(workspace中,此项目的根目录)。

原因是,没有logback-spring.xml配置文件,系统只认识logging.file,不认识logging.path

所以要配置logback-spring.xml,spring boot会默认加载此文件,为什么不配置logback.xml,因为logback.xml会先application.properties加载,而logback-spring.xml会后于application.properties加载,这样我们在application.properties文中设置日志文件名称和文件路径才能生效。

logback-spring.xml

注意 $ {LOG_PATH}和$ {LOG_FILE}分别是获取配置文件中的路径和文件名称,必须使用这两个全局的配置去获取。

配置方式2:logback.xml

日志的输出路径和日志文件名,直接由logback配置文件指定,则配置文件名直接使用logback.xml

logback.xml

logback.xml会先application.properties加载,所以在logback.xml中定义日志的存放位置log.path

${console.log.pattern}
utf-8
${log.path}/sys-info.log
${log.path}/sys-info.%d{yyyy-MM-dd}.log
60
${log.pattern}
INFO
ACCEPT
DENY
${log.path}/sys-debug.log
${log.path}/sys-debug.%d{yyyy-MM-dd}.log
60
${log.pattern}
DEBUG
ACCEPT
DENY
${log.path}/sys-error.log
${log.path}/sys-error.%d{yyyy-MM-dd}.log
60
${log.pattern}
ERROR
ACCEPT
DENY
${log.path}/sys-user.log
${log.path}/sys-user.%d{yyyy-MM-dd}.log
60
${log.pattern}
${console.log.pattern}
utf-8
${log.path}/info.log
${log.path}/info.%d{yyyy-MM-dd}.log
30
${log.pattern}
INFO
ACCEPT
DENY
${log.path}/debug.log
${log.path}/debug.%d{yyyy-MM-dd}.log
30
${log.pattern}
DEBUG
ACCEPT
DENY
${log.path}/error.log
${log.path}/error.%d{yyyy-MM-dd}.log
30
${log.pattern}
ERROR
ACCEPT
DENY

动态修改日志等级

在实际应用中,上线的系统要排查问题,在界面开启dug日志可以很方便的排查。动态修改日志等级的方式有很多,描述如下:

方式1:开启logback的自动扫描更新

...

上线的系统,直接修改该xml,无需重启即可完成日志等级修改。

方式2:springboot引入Actuator

  1. pom.xml增加相关依赖,引入Actuator包
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-starter-actuator
  1. application.yml配置
# actuate监控只开启 日志等级管理management:  endpoint:    loggers:      enabled: true  endpoints:    web:      exposure:        include:        - loggers
  1. 修改日志级别
    通过 http://ip:port/项目名/actuator/loggers 端点提供的 POST 请求,修改包路径com.xxx.aa的日志级别为DEBUG:
POST请求:	http://ip:port/项目名/actuator/loggers/包路径请求体:	{
"configuredLevel": "DEBUG" }

可设为定时任务,根据数据库配置定时更新日志级别。

springboot日志系统

对于web项目,已经引入了spring-boot-starter-web,默认已经自带了日志的spring-boot-starter-logging,已经默认引入了logback实现,只需要配置application.yml即可。

转载地址:http://uzqgn.baihongyu.com/

你可能感兴趣的文章
VS2010 将背景设为保护色
查看>>
ubutun里面用命令行安装软件
查看>>
ubuntu 常用命令
查看>>
SQLite Tutorial 4 : How to export SQLite file into CSV or Excel file
查看>>
how to move pivot to origin
查看>>
Optimizate objective function in matrix
查看>>
Convert polygon faces to triangles or quadrangles
查看>>
How do I divide matrix elements by column sums in MATLAB?
查看>>
read obj in matlab
查看>>
find out the neighbour matrix of a mesh
查看>>
Operators and special characters in matlab
查看>>
As-Conformal-As-Possible Surface Registration
查看>>
qmake Variable Reference
查看>>
ML 14 part2 principal component analysis
查看>>
Lesson 2 Gradient Desent
查看>>
lesson 5 memory model
查看>>
lesson 6 threads synchronization
查看>>
lesson 7 strategies for efficient CUDA programming
查看>>
using cuda7.0 in matlab2015b with vs2013 compiler
查看>>
convert RGB image with hole into binary image with hole filled
查看>>