四、日志
1.日志框架
日志门面(抽象层 接口):SLF4j
日子实现(实现):Logback
2.SLF4j使用
1.如何在系统中使用SLF4j
如何让系统中所有的日志都统一到SLF4j
1.将系统中的其他框架先排除出去.
2.用中间包来替代原来的日志框架.
3.我们导入SLF4j其他的实现.
3.SpringBoot日志关系
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<version>2.2.6.RELEASE</version>
<scope>compile</scope>
</dependency>
SpringBoot使用它来做日志功能
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
<version>2.2.6.RELEASE</version>
<scope>compile</scope>
</dependency>
底层依赖关系
总结:
1.SpringBoot底层用的是logback+log4j的方式进行日志记录
2.SpringBoot也把其他的日志都替换成了slf4j
3.中间包替换
4.如果我们要引入其他框架.一定要把这个框架的默认日志依赖移除
Spring框架用的是commons-logging;
4.日志的使用
1.默认配置
SpringBoot默认帮我们配置好了日志
@SpringBootTest
class SpringBoot03ApplicationTests {
//记录器
Logger logger = LoggerFactory.getLogger(getClass());//当前哪个类就是写哪个类
@Test
void contextLoads() {
//日志的级别
//由低到高可以调整输出的日志级别,日志只会从这个级别以后的高级别生效
logger.trace("这是trace日志文件");
logger.debug("这是debug日志");
//默认使用info级别的
logger.info("这是info日志");
logger.warn("这个warn日志");
logger.error("这是error日志");
}
}
1. 日志输出格式:
2. %d表示日期时间,
3. %thread表示线程名,
4. %-5level:级别从左显示5个字符宽度
5. %logger{50} 表示logger名字最长50个字符,否则按照句点分割。
6. %msg:日志消息,
7. %n是换行符
logging.pattern.console=%d{yyyy-MM-dd mm-ss} [%thread] %-5level %logger{50} - %msg%n
SpringBoot修改日志的默认配置
#将日志级别改成trace 高级别的日志信息都会输出
logging.level.com.xiaoming=trace
#不指定路径就是在当前目录下生成日志文件
#可以指定完整的路径
#logging.file.path=/yygamestore
#日志文件以什么名字在哪里生成
#logging.file.name=A1111.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
#在文件里