大连建设安全网站,华汇建设集团有限公司网站,校园网站建设目的,企业制作网站一般多少钱上篇文章介绍了SpringBoot配置文件#xff0c;这篇文章我们将会介绍SpringBoot ⽇志⽂件 荔枝1.日志有什么用2.自定义日志输出2.1获取程序日志对象2.2使用相关方法输出日志2.3日志级别2.3.1日志级别的作用2.3.2日志级别如何设置2.4日志格式3.持久化日志4.更简单的日志输出4.1使… 上篇文章介绍了SpringBoot配置文件这篇文章我们将会介绍SpringBoot ⽇志⽂件 荔枝1.日志有什么用2.自定义日志输出2.1获取程序日志对象2.2使用相关方法输出日志2.3日志级别2.3.1日志级别的作用2.3.2日志级别如何设置2.4日志格式3.持久化日志4.更简单的日志输出4.1使用Lombok进行日志输出4.2Lombok更多注解结尾1.日志有什么用
日志主要是我们程序运行时的一些相关信息比如启动端口报错信息什么的我们SpringBoot项目运行时因为SpringBoot内置了日志框架就会输出一些日志 那么它有什么用呢想象一样如果没有日志信息当我们的应用程序出现问题时我们怎么定位问题出现在哪呢类和方法那么多我们一个一个排除肯定是来不及的所以日志的信息就尤为重要可以帮助我们快速定位问题源头。 但是上图的日志是默认的并不是我们定义的那么怎么才能自定义日志并输出呢
2.自定义日志输出
2.1获取程序日志对象
再输出日志之前我们要先从当前程序获取日志对象
public static Logger loggerLoggerFactory.getLogger(类.class);这里去除了大量参数但是保留了是类对象,因为这样你才知道这个日志来自哪个类 注意Logger这个类来自org.slf4j 包下的不要导⼊错包 2.2使用相关方法输出日志
Logger中有很多类对应了不同等级的日志信息我们常用的方法 logger.trace();logger.debug();logger.info();logger.warn();logger.error();//里面可填不同的参数这里我们写一段代码测试一下
ResponseBody
RequestMapping(user)
Component
public class LogDemo {public static Logger loggerLoggerFactory.getLogger(LogDemo.class);RequestMapping(demo)public void test(){logger.trace(i am trace);logger.debug(i am debug);logger.info(i am info);logger.warn(i am warn);logger.error(i am error);}
}运行得到结果 我们发现明明写了五个方法怎么只输出了后三个这是因为SpringBoot输出的日志大于等于当前日志等级的我们没有设置默认就是info。
2.3日志级别
⽇志的级别分为 trace微量少许的意思级别最低 debug需要调试时候的关键信息打印 info普通的打印信息默认⽇志级别 warn警告不影响使⽤但需要注意的问题 error错误信息级别较⾼的错误⽇志信息 fatal致命的因为代码异常导致程序退出执⾏的事件。
2.3.1日志级别的作用 日志有了级别我们就能快速找到注意的错误信息减少查错时间同时因为只输出高等级的日志也能减少我们日志文件的大小否则一个日志就几个G找错要找到什么时候 2.3.2日志级别如何设置
设置日志级别是在配置文件中修改主要分为两种设置 1.设置全局
logging:level:root: debug这里我们就把默认的日志级别改成debug了 2.设置局部 有时我们的日志的需求可能是这个类为debug另一个类为warn这种全局设置肯定不行这里就需要设置单独的类或者包的日志级别 这里设置一个类为warn一个为info
logging:level:root: infocom:example:demo:test:LogTest: warn这里的root是根目录com等都是包名LogTest是类名
运行结果
2.4日志格式
那么我们的日志是输出了但是它各部分都有什么含义呢我们来深入了解一下
3.持久化日志
看到这里我们的日志自定义日志确实输出了但是它是输出在控制台上的也就是我们的程序重新启动它就消失了这样的话和System.out.printf()直接打印好像没什么区别想要持久化的存储日志就要把它保存至硬盘上。 只需要在配置文件中设置一下即可 点击运行打开path对应文件夹发现多了一个文件spring.log,打开即可看到我们的日志 这里我们的path只是设置了目录并没有指定到一个文件那如何指定文件呢配置项path要更换成配置项name(文件名称) 没有这个文件也没关系它会自动帮你生成的
4.更简单的日志输出
4.1使用Lombok进行日志输出
获取程序日志对象的代码可以发现
public static Logger loggerLoggerFactory.getLogger(类.class);如果类多的情况下这个代码出现的频率也高本身这代码看起来就挺繁琐的因为每个类基本上就类.class不同能不能简化它呢当然可以这里就要用到我们的神器Lombok可以通过其中的一个注解Slf4j帮助我们构建日志对象log 这样就方便多啦 为什么一个小小的注解就能帮助我们构造日志对象我们编译代码生成.class文件后观察LogDemo.class可以发现 Slf4j没有了取而代之的是我们熟悉的“它”。
4.2Lombok更多注解
基础注解 Getter ⾃动添加 getter ⽅法 Setter ⾃动添加 setter ⽅法 ToString ⾃动添加 toString ⽅法 EqualsAndHashCode ⾃动添加 equals 和 hashCode ⽅法 NoArgsConstructor ⾃动添加⽆参构造⽅法 AllArgsConstructor ⾃动添加全属性构造⽅法顺序按照属性的定义顺序 NonNull 属性不能为 null RequiredArgsConstructor ⾃动添加必需属性的构造⽅法final NonNull 的属性为必需 组合注解 Data Getter Setter ToString EqualsAndHashCode RequiredArgsConstructor NoArgsConstructor 日志注解 Slf4j 添加⼀个名为 log 的⽇志使⽤ slf4j 结尾
今天的日志学习就到这里啦下一期进入SpringMVC的学习哦