深入理解 SpringBoot 日志框架:从入门到高级应用——(四)Logback 输出日志到 QQ邮箱

要将 Logback 输出日志到 QQ 邮箱,需要执行以下步骤:

  1. 在 QQ 邮箱中获取授权码。
  2. 在你的 SpringBoot 项目中添加 Logback 依赖和 SMTP 协议实现库,例如 Email 依赖。
  3. 在 Logback 配置文件中添加 SMTPAppender。并配置 SMTPAppender,设置 SMTP 服务器主机名、端口号、登录邮箱和密码、发送方邮箱和接收方邮箱。最后添加到 Logger 中。
  4. 启动项目,当有日志需要输出时,Logback 会自动将日志发送到指定的 QQ 邮箱地址。

获取 QQ 邮箱授权码

登录 QQ 邮箱 ,点击设置,开启POP3/SMTP 服务,并获取 QQ 邮箱授权码(保存好,后续需要用):

image-20210721183022698

添加依赖

Spring Boot 中使用了 SLF4J + Logback 作为默认的日志框架,因此我们不需要再次添加依赖项,只需要添加 Email 的依赖即可:

<!--mail依赖-->
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-mail</artifactId>
</dependency>

编写 SMTPAppender

要将日志输出到 QQ 邮箱,需要使用 SMTPAppender 和 SMTP 配置。以下是 logback-spring.xml文件的示例配置:

<configuration>
  <appender name="EMAIL" class="ch.qos.logback.classic.net.SMTPAppender">
    <!-- SMTP server的地址 -->
    <smtpHost>${user.host}</smtpHost>
    <!-- SMTP server的端口地址 -->
    <smtpPort>465</smtpPort>
    <!--发件人账号-->
    <username>${user.email}</username>
    <!--发件人授权码-->
    <password>${user.email.password}</password>
    <!--SSL连接到日志服务器,默认值:false-->
    <SSL>true</SSL>
    <!--异步发送-->
    <asynchronousSending>true</asynchronousSending>
    <!--收件人账号,多个用逗号隔开-->
    <to>${user.email}</to>
    <!-- 发件人名称 -->
    <from>${user.email}</from>
    <!-- emial的标题 -->
    <subject>【Error】:%logger{0}</subject>
    <!-- 编码 -->
    <charsetEncoding>UTF-8</charsetEncoding>

    <cyclicBufferTracker class="ch.qos.logback.core.spi.CyclicBufferTracker">
      <!-- 每个电子邮件只发送一个日志条目 -->
      <bufferSize>10</bufferSize>
    </cyclicBufferTracker>

    <!--HTML展示-->
    <layout class="ch.qos.logback.classic.html.HTMLLayout" />
    <!--文本展示-->
    <!--<layout class="ch.qos.logback.classic.layout.TTLLLayout"/>-->

    <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
      <!--错误级别(只会提示大于该级别的错误)-->
      <level>ERROR</level>
    </filter>
  </appender>

  <root level="DEBUG">
    <appender-ref ref="EMAIL" />
  </root>
  
</configuration>

在上面的配置中,你需要替换以下内容:

  1. SMTP 服务器主机名和端口号;
  2. QQ 邮箱地址和授权码,这里是你的 QQ 邮箱地址和授权码;
  3. 收件人地址,这里是收件人的电子邮件地址,可以写多个,用逗号分隔;
  4. 发件人地址,这里是你的QQ邮箱地址;
  5. 邮件主题,这里是发送的邮件主题;
  6. 使用的布局,这里使用 HTML 布局,你也可以选择其他的布局。

运行结果

编写方法,输出日志:

public static void main(String[] args) {
    
    
  logger.info("日志测试");
  logger.trace("日志测试");
  logger.error("日志测试1");
  logger.error("日志测试2");
  logger.error("日志测试3");
}

配置完成后,Logback 就可以将日志输出到你的QQ邮箱了。

image-20230616010036376

猜你喜欢

转载自blog.csdn.net/qq_20185737/article/details/131238561