springboot的日志相关
一.日志框架
写了一个统一的接口层;日志门面(日志的一个抽象层);logging-abstract.jar;给项目中导入具体的日志实现就行了;我们之前的日志框架都是实现的抽象层;
市面上的日志框架:
- JUL、
- JCL、
- Jboss-logging、
- logback、
- log4j、
- log4j2、
- slf4j、
二.slf4j使用
以后开发的时候,日志记录方法的调用,不应该直接调用日志的实现类,而是调用日志抽象层的方法。
- 给系统导入slf4j和logback的jar包
- 调用方法
public class Hello{
public static void main(String[] args){
Logger logger=LoggerFactory.getLogger(Hello.class);
logger.info("hello world");
}
}
每一个日志实现框架都有自己的配置文件,使用slf4j以后,配置文件还是使用日志实现框架的配置文件
三.如何让系统中所有的日志都统一到slf4j
- 将系统中其他日志框架先排除出去
- 用中间包来代替原有的日志框架
- 我们导入slf4j其他的实现
四.日志使用
Logger logger=LoggerFactory.getLogger(getClass());
@Test
public void test1(){
//日志的级别:
//由低到高:trace<debug<info<warn<error
//可以调整输出的日志级别;日志就会只生效这个级别以及更高级的输出级别
logger.trace("trace日志");
logger.debug("debug日志");
logger.info("info日志");//springboot默认使用info级别
logger.warn("warn日志");
logger.error("error");
}
1.修改日志配置
在properties/yml修改日志配置(以properties为例)
logging.level.com.liangqiu111=trace#指定日志级别
logging.file=springboot.log#在当前项目生成日志
logging.file=G:/springboot.log#在G盘生成日志
logging.path=/spring/log#在当前磁盘根路径创建/spring/log/目录使用spring.log作为日志文件
logging.pattern.console=%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} -%msg%n#控制台输出日志格式
logging.pattern.file=%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} -%msg%n#文件输出日志格式
2.指定配置
给类路径下放上每个日志框架自己的配置文件即可;
Logging System | Customization |
---|---|
Logback | logback-spring.xml;logback-spring.groovy;logback.xml;logback.groovy |
Log4j2 | log4j2-spring.xml;log4j2.xml |
JDK(java.util.Loggin) | logging.properties |
- logback.xml:直接被日志框架识别,没有高级特性
- logbcak-spring.xml:日志框架不直接加载日志的配置项,由springboot加载
高级特性(多profile,由properties配置文件激活)
<spring Profile name="dev">
...#相关的日志配置
</spring Profile>
<spring Profile name="prod">
...
</spring Profile>
五.切换日志框架
1.slf4j+log4j的方式
修改pom.xml如下,并添加日志配置文件就行了
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring‐boot‐starter‐web</artifactId>
<exclusions>
<exclusion>
<artifactId>logback‐classic</artifactId>
<groupId>ch.qos.logback</groupId>
</exclusion>
<exclusion>
<artifactId>log4j‐over‐slf4j</artifactId>
<groupId>org.slf4j</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j‐log4j12</artifactId>
</dependency>
2.切换为log4j2
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring‐boot‐starter‐web</artifactId>
<exclusions>
<exclusion>
<artifactId>spring‐boot‐starter‐logging</artifactId>
<groupId>org.springframework.boot</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring‐boot‐starter‐log4j2</artifactId>
</dependency>