文章目录
- 获取 QQ 邮箱授权码
- 添加依赖
- 编写 SMTPAppender
- 运行结果
要将 Logback 输出日志到 QQ 邮箱,需要执行以下步骤:
- 在 QQ 邮箱中获取授权码。
- 在你的 SpringBoot 项目中添加 Logback 依赖和 SMTP 协议实现库,例如 Email 依赖。
- 在 Logback 配置文件中添加 SMTPAppender。并配置 SMTPAppender,设置 SMTP 服务器主机名、端口号、登录邮箱和密码、发送方邮箱和接收方邮箱。最后添加到 Logger 中。
- 启动项目,当有日志需要输出时,Logback 会自动将日志发送到指定的 QQ 邮箱地址。
获取 QQ 邮箱授权码
登录 QQ 邮箱 ,点击设置,开启POP3/SMTP 服务,并获取 QQ 邮箱授权码(保存好,后续需要用):
添加依赖
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>
在上面的配置中,你需要替换以下内容:
- SMTP 服务器主机名和端口号;
- QQ 邮箱地址和授权码,这里是你的 QQ 邮箱地址和授权码;
- 收件人地址,这里是收件人的电子邮件地址,可以写多个,用逗号分隔;
- 发件人地址,这里是你的QQ邮箱地址;
- 邮件主题,这里是发送的邮件主题;
- 使用的布局,这里使用 HTML 布局,你也可以选择其他的布局。
运行结果
编写方法,输出日志:
public static void main(String[] args) {
logger.info("日志测试");
logger.trace("日志测试");
logger.error("日志测试1");
logger.error("日志测试2");
logger.error("日志测试3");
}
配置完成后,Logback 就可以将日志输出到你的QQ邮箱了。