- 内容简介
- 前言
- 第 1 章 第一个 Spring Boot 项目
- 第 2 章 集成 MySQL 数据库
- 第 3 章 集成 Spring Data JPA
- 第 4 章 使用 Thymeleaf 模板引擎
- 第 5 章 Spring Boot 事务支持
- 第 6 章 使用过滤器和监听器
- 第 7 章 集成 Redis 缓存
- 第 8 章 集成 Log4j 日志
- 8.3 使用 Log4j 记录日志
- 第 9 章 Quartz 定时器和发送 Email
- 第 10 章 集成 MyBatis
- 第 11 章 异步消息与异步调用
- 第 12 章 全局异常处理与 Retry 重试
- 第 13 章 集成 MongoDB 数据库
- 第 14 章 集成 Spring Security
- 第 15 章 Spring Boot 应用监控
- 第 16 章 集成 Dubbo 和 Zookeeper
- 第 17 章 多环境配置与部署
- 第 18 章 Spring Boot 原理解析
- 参考文献
8.3 使用 Log4j 记录日志

8.3.1 打印到控制台
现在我们把日志打印到控制台,需要往 log4j2.xml 配置文件中添加相关的配置,具体代码如下:
- <Console/>:指定控制台输出。
- <PatternLayout/>:控制日志的输出格式。
在 6.2.2 和 7.3.1 节中,我们已经开发好 AyUserListener 监听器,不过是使用 System.out.println 来打印信息,这是一种非常不合理的方式,现在我们把 Logger 类引入 AyUserListener.java 监听器中,同时把 System.out.println 相关代码注释掉,改成用日志方式记录信息。这样,在项目启动过程中,调用上下文初始化和销毁方法的时候,就会把日志记录到开发工具控制台或者日志文件中。AyUserListener 的具体代码如下:
8.3.2 记录到文件
在 8.3.1 节中,日志只是被打印到控制台中,当项目真正被上线之后,是没有控制台这个概念的,在上线环境中,项目的日志都是被记录到文件中的。所以我们继续在 log4j2.xml 配置文件中添加相关配置,使日志可以被打印到文件中,具体代码如下:
- <RollingFile>标签:fileName 用于定义日志的数据路径,如 D:/info.log;filePattern 用于定义日志的匹配方式。
- <Filters>标签:日志过滤策略,<ThresholdFilter>标签用于指定日志信息的最低输出级别,默认为 DEBUG。
现在我们修改 3.2.3 节中 AyUserServiceImpl 类的删除方法 delete,希望删除用户这个操作可以被记录到日志文件中,AyUserServiceImpl 类代码具体的修改如下:
8.3.3 测试
代码开发完成之后,接下来就是测试工作了。重新启动项目,启动之前,记得打开 Redis 服务器,因为之前我们已经在 Spring Boot 中整合了 Redis。在项目重启的过程中,我们可以在 IntelliJ IDEA 控制台中看到如图 8-2 所示的信息。同时,可以到 D 盘查看日志文件 info.log,在日志文件中按 Ctrl + F 快捷键,可以查询到和图 8-2 所示一样的信息。
图 8-3 Redis 断点调试界面
接着再测试一下在删除用户的时候日志是否可以打印到控制台或者记录到日志文件中。在测试类 MySpringBootApplicationTests 下添加测试用例,具体代码如下:
数据库 ay_test 表中存在 4 条数据,如图 8-3 所示。运行单元测试方法 testLog4j,如果同样可以在 IntelliJ IDEA 控制台或者 D 盘的 info.log 文件中打印如图 8-4 所示的信息,证明 Spring Boot 整合 Log4j 以及在 Spring Boot 中运用 Log4j 成功。
图 8-3 ay_test 表中的 4 条数据
图 8-4 Redis 断点调试界面
提示 启动项目的时候,记得启动 Redis 服务器,否则会报错。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论