一、日志框架
1.无论在什么系统,日志框架都是一个重要角色,所以理解和用好日志框架是相当重要的;像JDBC一样,日志框架分为接口层的门面和具体的实现组成。
2.市面上的产品:
2.1门面:SLF4J(Simple Loggin Facade for Java)、JCL(Jakarta Common Loggin)、jboss-logging
2.2具体实现:Log4j->Logback、Log4j2、JUL(java.util.loging)
其中SLF4J、Log4j->Logback都是出自同一个作者,兼容自然是最好,Logback可以说是Log4j的升级版,而Apache的Log4j2兼容性并不友好(需要引入中间层),其它产品几乎是很少用了,
所以现在SLF4J+Logback是主流组合,Springboot正是默认是使用了这套日志框架(spring底层默认使用JCL+Log4J)。
二、springboot使用日志框架
创建springboot项目时自动帮我们引入了SLF4J+Logback,使用起来非常简单,小试牛刀:
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import com.example.log.DefLoggin;
@SpringBootApplication
public class SpringBootPropertiesApplication {
public static void main(String[] args) {
SpringApplication.run(SpringBootPropertiesApplication.class, args);
Logger logger = LoggerFactory.getLogger(DefLoggin.class);
logger.trace("1.追踪");
logger.debug("2.调试");
logger.info("3.信息");
logger.warn("4。警告");
logger.error("5.错误");
}
}
输出(默认知道INFO级别):
2019-04-25 22:32:34.611 INFO 6696 --- [ main] c.e.d.SpringBootPropertiesApplication : 3.信息
2019-04-25 22:32:34.612 WARN 6696 --- [ main] c.e.d.SpringBootPropertiesApplication : 4。警告
2019-04-25 22:32:34.612 ERROR 6696 --- [ main] c.e.d.SpringBootPropertiesApplication : 5.错误
日志输出级别:
- Log Level:
ERROR
,WARN
,INFO
,DEBUG
, orTRACE
.(官方文档)
当然我们可以通过配置文件控制输出级别以及更多其它常用设置。
三、日志框架常用配置
#logging.level.com.example.demo=ERROR #logging.path= # 不指定路径在当前项目下生成springboot.log日志 # 可以指定完整的路径; #logging.file=G:/springboot.log # 在当前磁盘的根路径下创建spring文件夹和里面的log文件夹;使用 spring.log 作为默认文件 logging.path=/spring/log # 在控制台输出的日志的格式 logging.pattern.console=%d{yyyy-MM-dd} [%thread] %-5level %logger{50} - %msg%n # 指定文件中日志输出的格式 logging.pattern.file=%d{yyyy-MM-dd} === [%thread] === %-5level === %logger{50} ==== %msg%n
logging.file | logging.path | Example | Description |
---|---|---|---|
(none) | (none) | 只在控制台输出 | |
指定文件名 | (none) | my.log | 输出日志到my.log文件 |
(none) | 指定目录 | /var/log | 输出到指定目录的 spring.log 文件中 |
四、日志框架的配置文件
一般我们会自定配置文件,覆盖默认文件的部分属性。
Logging System | Customization |
---|---|
Logback | logback-spring.xml , logback-spring.groovy , logback.xml or logback.groovy |
Log4j2 | log4j2-spring.xml or log4j2.xml |
JDK (Java Util Logging) | logging.properties |
1.logback.xml,对应logback框架默认配置文件名,直接被日志框架识别使用;
2.logback-spring.xml,先由springboot加载解析,再给日志框架使用,可使用高级功能Profile
<layout class="ch.qos.logback.classic.PatternLayout"> <springProfile name="dev"> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} ----> [%thread] ---> %-5level %logger{50} - %msg%n</pattern> </springProfile> <springProfile name="!dev"> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} ==== [%thread] ==== %-5level %logger{50} - %msg%n</pattern> </springProfile> </layout>
在主配置文件application.properties中
spring.profiles.active=dev控制使用哪个格式。
原文地址:https://www.cnblogs.com/Oven1993/p/10771701.html