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

news2024/11/26 2:06:25

文章目录

    • 获取 QQ 邮箱授权码
    • 添加依赖
    • 编写 SMTPAppender
    • 运行结果

要将 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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/651639.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

NOTA-Me-Tetrazine,NOTA-甲基四嗪,大环化合物具有良好的配位和鳌合能力

文章关键词&#xff1a;甲基四嗪修饰大环配体&#xff0c;双功能螯合剂&#xff0c;大环化合物 ●中文名&#xff1a;NOTA-甲基四嗪 ●英文名&#xff1a;NOTA-Me-Tetrazine ●外观以及性质&#xff1a; 西安凯新生物科技有限公司供应的​NOTA-Me-Tetrazine中四嗪修饰大环配体&…

LaTeX插入参考文献

接着上一篇&#xff0c;用EndNote组织参考文献&#xff0c;然后再导入到LeTex中感觉不太好用&#xff0c;然后就学习了一下BibTeX来管理参考文献&#xff0c;发现还可以&#xff0c;这里记录一下&#xff0c;方便以后查阅。 LaTeX插入参考文献 thebibliographyBibTeX参考资料 t…

总结901

目标规划&#xff1a; 月目标&#xff1a;6月&#xff08;线性代数强化9讲&#xff0c;考研核心词过三遍&#xff09; 周目标&#xff1a;线性代数强化5讲&#xff0c;英语背3篇文章并回诵&#xff0c;检测 每日规划 今日已做 1.回环复习之前背过的文章。 2.背单词&#xf…

想了解3,4,6-Tri-O-acetyl-D-galactal,4098-06-0,D-三乙酰半乳糖烯?点击这里查看详细信息!

文章关键词&#xff1a;糖化学试剂&#xff0c;三乙酰半乳糖烯 3,4,6-Tri-O-acetyl-D-galactal |3,4,6-O-三乙酰基-D-半乳糖烯&#xff0c;D-三乙酰半乳糖烯|CAS&#xff1a;4098-06-0 | 纯度&#xff1a;95%一、结构式&#xff1a; 二、试剂参数信息&#xff1a; CAS&#x…

Redis从入门到精通进阶篇之持久化RDB和AOF机制详解

文章目录 RDB持久化AOF持久化RDB与AOF的混合持久化 Redis 6的持久化机制主要有两种&#xff1a;RDB&#xff08;Redis DataBase&#xff09;和AOF&#xff08;Append Only File&#xff09;。本文将详细介绍这两种持久化方式的工作原理和配置要点。 RDB持久化 RDB持久化是将当…

中国电子学会2023年05月份青少年软件编程Scratch图形化等级考试试卷一级真题(含答案)

2023年5月 Scratch一级真题 题数&#xff1a;37 分数&#xff1a;100 测试时长&#xff1a;60min 一、单选题(共25题&#xff0c;共50分) 1. 看图找规律&#xff0c;请问下图红框中是&#xff1f;&#xff08;D&#xff09;&#xff08;2分&#xff09; A. B. C. …

C++线程库(1)

C线程库&#xff08;1&#xff09; 线程进程基础概念多线程线程调用函数的底层值作为参数引用作为参数右值引用作为参数 join和destach区别joinable函数 jthread&#xff08;C20&#xff09;同步异步&#xff08;简述&#xff09;互斥&#xff08;简述&#xff09;阻塞非阻塞递…

SpringAOP+自定义注解简单使用

一、SpringAOP简述 SpringAOP可以帮助我们在不修改源代码的前提下实现功能增强&#xff0c;其底层实现原理基于Java动态代理或者CGLIB。 之前我们使用 execution表达式指定被AOP增强的方法&#xff1a;(execution关键字用于描述哪些方法需要切面逻辑) 但是这样使用非常不灵活&a…

网络层:路由选择协议

1.网络层&#xff1a;路由选择协议 笔记来源&#xff1a; 湖科大教书匠&#xff1a;路由选择协议概述 湖科大教书匠&#xff1a;路由信息协议RIP的基本工作原理 湖科大教书匠&#xff1a;开放最短路径优先OSPF的基本工作原理 湖科大教书匠&#xff1a;边界网关协议&#xff08…

力扣题库刷题笔记7--N

1、题目如下&#xff1a; 2、个人Python代码实现&#xff1a; 看到此题的第一反应就是&#xff0c;生成一个类似二维数组的多个字符串&#xff0c;然后用个标志位控制N字符中字符的方向&#xff0c;例如flag True&#xff0c;在每次循环时候以flag flag * -1来控制。 由于示例…

嵌套虚拟机-Win10下的-wmware中的Ubuntu1804-使用KVM-安装win和ubuntu虚拟机

一、物理机操作 参考博文-CSDN-林麦安 -关于“ VMware Workstation 16 此平台不支持虚拟化的Intel VT-x/EPT. 不使用虚拟化的Intel VT-x/EPT,是否继续&#xff1f;”的有关问题的总结解答 在windows物理机搜索&#xff1a;内核隔离 把开关置为关 但是我的物理机这个选项已经是…

学习系统编程No.24【深入学习信号】

引言&#xff1a; 北京时间&#xff1a;2023/6/13/19:07&#xff0c;伴随着期末考的来临&#xff0c;最近停课啦&#xff01;无论是线上课&#xff0c;还是学校的课&#xff0c;开心&#xff0c;那这不是咱持续更文的好时候嘛&#xff0c;但是今天在学习相关C知识时&#xff0…

华为防火墙之安全策略

1.安全策略初体验 安全策略在防火墙转发报文的过程中扮演着重要角色&#xff0c;只有安全策略允许通过&#xff0c;报文才能在安全区域之间流动&#xff0c;否则报文将被丢弃。 先来看一个简单的网络环境&#xff0c;如下图&#xff1a; 如果想在防火墙上允许PC访问Web服务器…

NOTA-(COOt-Bu)3-Bn-NCS:一款多功能四氮杂环螯合剂标记

文章关键词&#xff1a;双功能螯合剂&#xff0c;大环化合物&#xff0c;有机双功能DOTA&#xff0c;金属离子螯合剂&#xff0c;四氮杂环螯合剂标记 【产品描述】 NOTA及其衍生物是新型双功能整合剂之一。NOTA及其衍生物具有良好的配位和鳌合能力&#xff0c;可作为过渡金属离…

vmstat调优命令

目录 一、vmstat命令描述 二、vmstat的语法格式 三、压力测试工具stress 实验&#xff1a; 模拟I/O负载 查看是哪个进程I/O读写高:pidstat -d (-d参数查看各进程io情况&#xff09; 总结 一、vmstat命令描述 vmstat命令&#xff1a; 用来获得有关进程、虚存、页面交换…

ChatGPT写文章

ChatGPT写小文章 只是个人对写小XX的心得?从知乎,知网自己总结的,有问题,可以留个言我改一下 被CSDN制裁过 关键词:论文 文章目录 ChatGPT写小文章-1.写XX模仿实战(狗头)0.XX组成1.好XX前提:2.标题3.摘要4.关键词5.概述6.实验数据、公式或者设计7.结论&#xff0c;思考8.参…

vsce报错The Personal Access Token verification has failed.,vsce login登录时同报此错的解决办法

本篇文章主要讲解vscode插件开发提交插件版本时出现的token报错问题的解决办法。 日期:2023年6月15日 作者:任聪聪 报错现象 1.vsce login 用户id报错如下: 具体报错内容: The Personal Access Token verification has failed. Additional information: Error: {"…

7.vue3医疗在线问诊项目 - _极速问诊-支付功能实现 ==> 预支付信息渲染、支付流程解析、订单生成、支付完成

7.vue3医疗在线问诊项目 - _极速问诊-支付功能实现 > 预支付信息渲染、支付流程解析、订单生成、支付完成 问诊支付-路由和预支付信息渲染{#pay-html} 实现&#xff1a;问诊页面路由配置&#xff0c;获取问诊预支付信息并渲染。 需求&#xff1a; 配置预订单信息页面路由定…

[学习笔记] [机器学习] 12. [上] HMM 隐马尔可夫算法(马尔科夫链、HMM 三类问题、前后后向算法、维特比算法、鲍姆-韦尔奇算法、API 及实例)

学习目标&#xff1a; 了解什么是马尔科夫链知道什么是 HMM 模型知道前向后向算法评估观察序列概率知道维特比算法解码隐藏状态序列了解鲍姆-韦尔奇算法知道 HMM 模型 API 的使用 1. 马尔科夫链 学习目标&#xff1a; 知道什么是马尔科夫链 在机器学习算法中&#xff0c;马…

【MySQL入门】-- 数据库介绍

目录 1.为什么要使用数据库&#xff1f; 2.数据库相关概念 3.数据库与数据库管理系统的关系 4.常见数据库排名 5.常见数据库的简单介绍 6.MySQL介绍 7.MySQL版本的选择 8.关系型数据库和非关系型数据库 9.关系型数据库设计规则以及规范 10.表的关系&#xff08;一对…