SpringBoot日志实现
- SpringBoot是现今市场上最火爆用来简化spring开发的框架,springboot日志也是开发中常用的日志系统。
- SpringBoot 默认就是使用SLF4J作为日志门面,Logback作为日志实现来记录日志。
// application.properties文件
logging.level.com.guizy=trace
logging.pattern.console=%d{yyyy-MM-dd} [%level] -%m%n
logging.file.path=/Users/guizhaoyang/Desktop/springboot_log
package com.guizy.springboot_log;
import org.apache.logging.log4j.LogManager;
import org.junit.jupiter.api.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
class SpringBootLogApplicationTests {
@Test
public void test01() {
/*
入门案例
SpringBoot日志具体实现
级别测试
默认是info级别;
logback的风格输出, (Springboot默认采用的是slf4j+logback作为日志实现)
*/
Logger logger = LoggerFactory.getLogger(SpringBootLogApplicationTests.class);
logger.error("error信息");
logger.warn("warn信息");
logger.info("info信息");
logger.debug("debug信息");
logger.trace("trace信息");
}
@Test
public void test02() {
/*
在spring-boot-starter-web依赖图中,观察到除了logback实现,还依赖了jul,log4j2等日志实现的桥接器
使用log4j2的日志实现, 观察桥接器是否起作用
通过观察日志信息,发现扔使用的是slf4j+logback来实现的;说明桥接器起了作用;通过log4j+桥接器来实现了slf4j+logback的方式
*/
org.apache.logging.log4j.Logger logger = LogManager.getLogger(SpringBootLogApplicationTests.class);
logger.error("error信息");
logger.warn("warn信息");
logger.info("info信息");
logger.debug("debug信息");
logger.trace("trace信息");
}
@Test
public void test03() {
/*
application.properties(yml)是springboot的核心配置文件(用来简化开发使用)
我们也可以通过该配置文件,修改日志相关的配置
在springboot核心配置文件中配置:
logging.level.com.guizy=trace
logging.pattern.console=%d{yyyy-MM-dd} [%level] -%m%n
*/
Logger logger = LoggerFactory.getLogger(SpringBootLogApplicationTests.class);
logger.error("error信息");
logger.warn("warn信息");
logger.info("info信息");
logger.debug("debug信息");
logger.trace("trace信息");
// 2022-03-31 [ERROR] -error信息
// 2022-03-31 [WARN] -warn信息
// 2022-03-31 [INFO] -info信息
// 2022-03-31 [DEBUG] -debug信息
// 2022-03-31 [TRACE] -trace信息
}
@Test
public void test04() {
/*
将日志输出到文件中
使用logging.file.path来配置文件路径下的文件夹(logging.file直接配置文件的形式已经过时,不使用)
在配置的文件夹下,日志文件生成的名字为spring.log
logging.level.com.guizy=trace
logging.pattern.console=%d{yyyy-MM-dd} [%level] -%m%n
// 文件夹为:springboot_log,文件名字为spring.log
logging.file.path=/Users/guizhaoyang/Desktop/springboot_log
*/
Logger logger = LoggerFactory.getLogger(SpringBootLogApplicationTests.class);
logger.error("error信息");
logger.warn("warn信息");
logger.info("info信息");
logger.debug("debug信息");
logger.trace("trace信息");
}
}
Springboot使用日志拆分等功能
System.err
${pattern}
${pattern}
${logDir}/roll_logback.log
${logDir}/roll.%d{yyyy-MM-dd}.log%i.gz
1KB
@Test
public void test05() {
/*
如果是需要配置日志拆分等相对高级的功能
那么application.properties就达不到需求了
需要使用日志实现相应的配置文件
例如我们现在使用的是logback日志实现
那么就需要在类路径resources下,配置logback.xml
*/
Logger logger = LoggerFactory.getLogger(SpringBootLogApplicationTests.class);
for (int i = 0; i
@Test
public void test06() {
Logger logger = LoggerFactory.getLogger(SpringBootLogApplicationTests.class);
logger.error("error信息");
logger.warn("warn信息");
logger.info("info信息");
logger.debug("debug信息");
logger.trace("trace信息");
}