栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

【Java】SpringBoot 之日志

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【Java】SpringBoot 之日志

As we All know

日志,通常不会在需求阶段作为一个功能单独提出来,也不会在产品方案中看到它的细节。但是,这丝毫不影响它在任何一个系统中的重要的地位。

part 1 日志框架浅析

SLF4J,即简单日志门面(Simple Logging Facade for Java)。目前来说,Logback是SLF4J的最佳实现。

从设计模式的角度考虑,它是用来在log和代码层之间起到门面的作用。配置SLF4J是非常简单的一件事,只要将你打算使用的日志系统对应的jar包加入到项目中,SLF4J就会自动选择使用你加入的日志系统。使用 slf4j 提供的接口,可隐藏日志的具体实现。这与jdbc相似,使用jdbc也就避免了不同的具体数据库。

SLF4J,即简单日志门面(

Simple Logging Facade for Java)。目前来说,Logback是SLF4J的最佳实现。

从设计模式的角度考虑,它是用来在log和代码层之间起到门面的作用。配置SLF4J是非常简单的一件事,只

要将你打算使用的日志系统对应的jar包加入到项目中,SLF4J就会自动选择使用你加入的日志系统。使用slf4j

提供的接口,可隐藏日志的具体实现。这与jdbc相似,使用jdbc也就避免了不同的具体数据库。

发展历程

1996 log4j = log for java apache 成为了日志标准

2002 jul = java util logging sun

jcl = jakarta commons logging 日志接口

2006 logback = log4j 升级版 slf4j = simple logging facade for java 日志门面接口

2012 log4j 2 apache

​ Commons logging || slf4j(主流 +logback)

part 2 日志基本格式

日志格式:时间日期+日志级别+进程ID+分隔符(正式开始)+线程名+Logger名(类名)+日志内容

日志级别:TRACE

日志地址:默认输出到控制台

part 3 日志配置使用

日志文件输出

1)在application中添加logging.path

配置path,默认输出的文件名是spring.log

2)在application中添加logging.file

配置file,默认输出路径是项目当前路径,[可配置绝对路径]

注:二者不能同时使用,如若同时使用,则只有logging.file生效

默认情况下,日志文件的大小达到10MB时会切分一次,产生新的日志文件

日志级别控制

logging.level日志级别控制前缀,*为包名或Logger名

LEVEL:选项TRACE,DEBUG,INFO,WARN,ERROR,FATAL,OFF

如:logging.level.root=warn#全局输出级别

自定义日志配置

根据不同的日志系统,可以按规则配置文件名,并放在src/main/resources下,就能被加载:

Logback:logback-spring.xml,logback-spring.groovy,logback.xml,logback.groovy

Log4j:log4j-spring.properties,log4j-spring.xml,log4j.properties,log4j.xml

Log4j2:log4j2-spring.xml,log4j2.xml

JDK(JavaUtilLogging):logging.properties

官方推荐优先使用带有-spring的文件名作为日志配置(如使用logback-spring.xml,而不是logback.xml)

输出格式

logging.pattern.console搭配正则表达式,配置日志内容的格式

logging.pattern.file搭配正则表达式,配置日志文件名称的格式

注意:这两个配置项只对文件中的日志生效,控制台的格式不变

如logging.pattern.console=%d{yyyy/MM/dd-HH:mm:ss}[%thread]%-5level%logger-%msg%n

各符号含义如下:

%d{yyyy/MM/dd-HH:mm:ss}——日志输出时间

%thread——输出日志的进程名字,这在Web应用以及异步任务处理中很有用

%-5level——日志级别,并且使用5个字符靠左对齐

%logger-——日志输出者的名字

%msg——日志消息

%n——平台的换行符

part 4 切换日志框架

去除原日志框架

        
            org.springframework.boot
            spring-boot-starter-web
            
                
                    logback-classic
                    ch.qos.logback
                
                
                    log4j-over-slf4j
                    org.slf4j
                
            
        

引入新框架

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/310368.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号