商城网站开发嵌入支付宝,服装租赁 网站 php,贵州城乡住房建设部网站,建筑公司简介模板 范本文章目录SpringBoot日志文件1. 日志有什么用2. 日志怎么用3. 自定义日志打印3.1 在程序中得到日志对象3.2 使用日志对象打印日志4. 日志级别4.1 日志级别有什么用#xff1f;4.2 日志级别的分类与使用5. 日志持久化6. 更简单的日志输出--lombok6.1 添加 lombok 依赖6.2 输出日…
文章目录SpringBoot日志文件1. 日志有什么用2. 日志怎么用3. 自定义日志打印3.1 在程序中得到日志对象3.2 使用日志对象打印日志4. 日志级别4.1 日志级别有什么用4.2 日志级别的分类与使用5. 日志持久化6. 更简单的日志输出--lombok6.1 添加 lombok 依赖6.2 输出日志6.3 lombok原理解释6.4 lombok更多注解说明7. 总结SpringBoot日志文件
1. 日志有什么用
日志是程序的重要组成部分想象一下如果程序报错了不让你打开控制台看日志那么你能找到报错的原因吗。
日志对于我们来说最主要的用途就是排除和定位问题。除了发现和定位问题之外我们还可以通过日志实现以下功能
记录用户登录日志方便分析用户是正常登录还是恶意破解用户记录系统的操作日志方便数据恢复和定位操作人记录程序的执行时间方便以后优化程序提供数据支持
2. 日志怎么用
Spring Boot项目在启动的时候默认就会有日志的输出如下图 通过上述信息我们可以发现
Spring Boot内置了日志框架默认情况下输出的日志并不是开发者定义和打印的那么开发者怎么在程序中定义打印日志日志默认是打印在控制台上而控制台的日志是不能被保存的 如何将日志永久的保存下来
3. 自定义日志打印
开发者自定义打印日志的实现步骤
在程序中得到日志使用日志对象的相关语法输出要打印的内容
3.1 在程序中得到日志对象
private static final Logger log LoggerFactory.getLogger(UserController.class);日志工厂需要将每个类的类型传进去这样我们才能知道日志的归属类才能更方便更直观的定位到问题
注意logger对象属于org.slf4j包下的不要导错了
3.2 使用日志对象打印日志
日志对象的打印方法有很多种我们可以使用info方法来输出日志
Controller
ResponseBody
public class UserController {private static final Logger log LoggerFactory.getLogger(UserController.class);RequestMapping(/sayhi)public void sayHi() {log.trace(trace);log.debug(debug);log.info(info);log.warn(warn);log.error(error);}
}4. 日志级别
4.1 日志级别有什么用
日志级别可以帮你筛选出重要的信息比如设置日志级别为error那么就可以只看到程序的报错日志了对于普通的调试日志和业务日志就可以忽略了。从而节省开发者筛选的时间日志级别可以控制不同环境下一个程序是否需要打印日志如开发环境我们需要很详细的信息而生产环境为了保持性能和安全性就会输出少量的日志而通过日志级别可以实现此类需求
4.2 日志级别的分类与使用
日志级别分为
trace: 微量少许的意思级别最低debug需要调试时候的关键信息打印info普通的打印信息默认日志级别warn警告不影响使用但需要注意的问题error错误信息级别较高的错误日志信息fatal致命的因为代码异常导致程序退出执行的事件
日志级别的顺序
越往上接收到的信息就越少如设置了warn就只能接收到warn及其上面的级别
日志级别设置
logging:level:root: error默认日志输出级别
清除掉配置文件当中的日志设置观察控制台输出的日志级别
得到结论日志输出级别默认是info
当存在局部日志级别和全局日志级别设置那么当访问局部日志时使用的是局部日志级别。也就是局部日志优先级高于全局日志的优先级
5. 日志持久化
以上的日志都是输出在控制台上然而生产环境上咱们需要将日志保存下来以便出现问题之后追溯问题把日志保存下来的过程叫做持久化
想要将日至持久化只需要在配置文件中指定日志的存储目录或者是指定日志保存文件名Spring Boot就会将控制台的日志写到相应的目录或文件下
配置日志文件的保存路径
logging:file:path: D:\rizhi保存的路径当中包含转义字符方面的设置我们可以使用这个/来作为分割符。
如果坚持使用Windows下的分割符我们需要使用\转义字符来转义一下
配置日志文件的文件名
logging:file:name: D:/rizhi/logger/spring.log6. 更简单的日志输出–lombok
每次使用LoggerFactory.getLogger很繁琐且每个类都添加一遍也很麻烦。这里的lombok是一种更好的日志输出方式
添加lombok框架支持使用slf4j注解输出日志
6.1 添加 lombok 依赖
首先要安装一个插件
然后再pom.xml页面右键、
最后重新添加依赖就可以了
6.2 输出日志
使用Slf4j注解在程序中使用log对象即可输入日志并且只能使用log对象才能输出这是lombok提供的对象名
6.3 lombok原理解释
lombok 能够打印⽇志的密码就在 target ⽬录⾥⾯target 为项⽬最终执⾏的代码查看 target ⽬录我们可以发现 这里的Slf4j注解变成了一个对象。
下面是java程序的运行原理 6.4 lombok更多注解说明
基本注解
注解作用Getter自动添加get方法Setter自动添加set方法ToString自动添加toString方法EqualsAndHashCode自动添加equals和hasCode方法NoArgsConstructor自动添加无参构造方法AllArgsConstructor自动添加全属性构造方法顺序按照属性的定义顺序NonNull属性不能为nullRequiredArgsConstructor自动添加必须属性的构造方法final NonNull的属性为需
组合注解
注解作用DataGetterSetterEqualsAndHashCodeRequiredArgsConstructorNoArgsConstructor
日志注解
注解作用Slf4j添加一个名为log的对象
7. 总结
日志是程序员中的重要组成部分使用日志可以快速的发现和定位问题Spring Boot提供了日志框架默认情况下使用的是info日志级别将日志输出到控制台的。我们可以通过lombok提供的Slf4j注解和log对象快速的打印自定义日志日志包含了6个级别
trace微量少许的意思级别最低debug需要调试的时候的关键信息打印info普通的打印信息warn警告不影响使用但需要注意的问题error错误信息级别较高的错误日志信息fatal致命的因为代码异常导致程序退出执行的事件
日志级别依次提升而日志级别越高收到的日志信息也就越少我们可以通过配置日志的保存域名或保存目录来将日志永久的保存下来