3.SpringBoot日志(日志框架,日志配置)
1. 日志框架
左边选择一个门面,(抽象层). 右边选择一个实现 .
日志门面:我们选择左边SLF4j,因为JCL太老了, jboss-logging不适合
日志实现:Logback最新的和SLF4j和SLF4j适配, log4j2适配不好
springboot:底层使用的spring框架,spring框架默认使用jcl
所以springboot使用slf4j和logback!
SLF4j的使用
1.如何在系统中使用SLF4j
以后在开发的时候,日志记录方法的调用,不应该嗲用日志的实现类, 而是调用抽象方法
给系统导入slf4j的jar和logback的实现jar
import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class
HelloWorld { public static void main(String[] args) { Logger logger =
LoggerFactory.getLogger(HelloWorld.class); logger.info("Hello World"); } }
图示:slf4j用法
每一个日志实现框架,都有自己的配置文件. 配置文件使用slf4j以后,配置文件还是做成日志实现框架的配置文件;
2.遗留问题
统一日志记录,(Spring(commons-logging),Hibernate(joss-logging))
*
现将系统中其他日志框架先排除出去;
*
用中间包来替换原有的日志框架;
*
我们导入slf4j其他的实现
3.使用日志
Logger logger = LoggerFactory.getLogger(getClass()); // 日志的级别从低到高,如下排列
@Test public void testLog() { logger.trace("这个trace日志");
logger.debug("这个debug日志"); logger.info("这个info日志"); logger.warn(
"这个warn日志"); logger.error("这个error日志"); }
可以在配置文件里配置级别:(如下图,这样我们的输出级别就是debug级别了)
logging.level=debug #指定目录,与logging.file冲突
#当前磁盘的根路径下创建spring文件夹和里面的log文件夹,使用日志spring.log默认文件 logging.path=/spring/log
#不指定路径,就在当前项目下生产springboot.log日志 #可以指定完整的路径: logging.file=springboot.log #
在控制台输出的日志的格式 logging.pattern.console=
指定配置
给类路径下 ,根据规定放一下的配置文件
Logging SystemCustomization
Logbacklogback-spring.xml, logback-spring.groovy, logback.xml, or
logback.groovy
Log4j2log4j2-spring.xml or log4j2.xml
JDK (Java Util Logging)logging.properties
推荐使用带扩展名的logback-spring.xml,
因为日志框架就不会被直接加载了,这样它由spirngboot加载能用到,springProfile标签,
<springProfile name="staging"> <!-- configuration to be enabled when the
"staging" profile is active --> 可以指定环境下,生效 </springProfile> <springProfile
name="dev, staging"> <!-- configuration to be enabled when the "dev" or
"staging" profiles are active --> </springProfile> <springProfile name=
"!production"> <!-- configuration to be enabled when the "production" profile
is not active --> </springProfile>
热门工具 换一换