返回介绍

8.3 使用 Log4j 记录日志

发布于 2025-04-26 13:53:51 字数 2937 浏览 0 评论 0 收藏

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。