赞
踩
目录
此处所说的日志和我们日常说的日志有何不同呢?
这里所说的日志是程序的重要组成部分,对于程序员而言,在日常开发中日志是帮助我们发现错误的途径。日志除了发现问题和定位问题外,还可以记录用户登录情况、记录日否存在恶意破解、更程序段的执行情况,为程序的维护与升级服务。
日志可不是在控制台输出一段 System.out.println() 的内容,而是通过配置与定义让程序自动生成记录信息;
像下面这些内容就是 SpringBoot 在控制台输出的日志,它记录了程序相关信息,但每次启动程序日志都会改变,下面的任务就是学会如何定义日志,让日志永久保存。
日志打印分为两步:
先来了解下面这段日志框架的进化史,java 日志从最早期的 Log4j 到现在的Log4j 1/2,它们都提供了日志操作的种种方法,本篇对日志的介绍都是借助 SLF4J 展开的。
private static final Logger logger = LoggerFactory.getLogger();
- LoggerFactory:是日志工厂,可以调用方法,通过日志工厂将每个类型传进去,就知道日志的归属类;
本篇使用 SLF4J 的日志,所以导包时要注意看清楚:
日志打印有基本分为六类:
- trace:微量,少许的意思,级别最低;
- debug:打印调试时的关键信息;
- info:(默认级别)打印普通信息;
- warn:警告,需要注意的问题,不影响使用;
- error:错误信息,级别较高;
- fatal:致命错误,因为代码异常导致的执行中断事件;但这个级别的日志是我们不能手动打印的;
某些书上介绍的是从 trace 到 fatal 级别越来越低,但主流认为是从 trace 到 fatal 级别是越来越高的;级别越高,可以看到的日志信息就越多,反之越少。
只有级别高于设置的日志权限,才能输出对应信息的日志。例如设置了日志级别为warn,那么就只能输出 warn、error、fatal 的日志了。
- @Controller
- @ResponseBody
- public class GetLog01 {
- // 1. 得到日志对象
- private static final Logger logger = LoggerFactory.getLogger(GetLog01.class);
-
- // 2. 打印日志
- @RequestMapping("/getLogs")
- public void printLogs() {
- logger.trace("trace");
- logger.debug("debug");
- logger.info("info");
- logger.warn("warn");
- logger.error("error");
- }
- }
默认权限是 info,所以输出日志:info、warn、error。
设置日志级别时,在 yml 文件中:
logging:
level:
这是固定语法,接着可以根据自己要设置的目录,设置需要的日志权限;
- #配置日志文件
- logging:
- level:
- root: error
- com:
- example:
- demo:
- controller: trace
直接设置 root 目录的日志权限为 error,controller 目录下的日志权限为 trace,那么启动后当然看不到多余信息了,因为 trace 权限太低。
语法:在 D 盘下的 JavaEE\java-ee\spring-log-demo\mylogs 包下自动创建一个 mylog.log 文件;
- logging:
- file:
- name: D:\JavaEE\java-ee\spring-log-demo\mylogs\mylog.log
直接设置 name 的方式,是指定路径 + 设置名称;
也可以只指定路径:name 换成 path,这样最终自动生成的是默认日志文件;
上面每次获取日志对象时,都要借助 LoggerFactory.getLogger(),传入类名或类对象,但是如果有 Lombok,那么只需要在类上添加注解 @Slf4j,启动类后就可以直接自动根据注解获取到日志对象,再借助方法打印日志即可。
- @RestController
- @Slf4j
- public class GetLog02 {
- @RequestMapping("/Slf4j")
- public void printLogs() {
- log.trace("Slf4j - trace");
- log.debug("Slf4j - debug");
- log.info("Slf4j - info");
- log.error("Slf4j - error");
- }
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。