gpt4 book ai didi

java - Spring boot - 使用 Logback 发送电子邮件

转载 作者:行者123 更新时间:2023-12-02 03:38:35 37 4
gpt4 key购买 nike

我正在尝试将 Logback 配置为在发生异常(日志记录级别:错误)时发送电子邮件。到目前为止我还无法让它工作,所以我想请求你帮助配置。

我有一个 Spring boot 应用程序,其中完成了一些处理:

private void foo() {
try {
// do something
} catch (Exception e) {
log.error("Logging my exception");
}
}

我想在记录此错误时触发电子邮件。我关注了一些tutorials我将 logback.xmlsmtp-appender.xml 添加到我的 resources 目录中:

logback.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<include resource="org/springframework/boot/logging/logback/base.xml" />
<include resource="smtp-appender.xml" />
<logger name="com.mycompany" level="DEBUG">
<appender-ref ref="SMTP" />
</logger>
</configuration>

smtp-appender.xml

<?xml version="1.0" encoding="UTF-8"?>

<included>
<appender name="SMTP" class="ch.qos.logback.classic.net.SMTPAppender">
<smtpHost>xxx</smtpHost>
<username>user</username>
<password>password</password>

<to>test@email.com</to>
<from>me@email.com</from>
<subject>testError</subject>

<layout class="ch.qos.logback.classic.html.HTMLLayout" />

</appender>
</included>

我已经通过 sendmail 在本地主机上设置了本地 smtpserver。我还尝试过 AWS smtp 服务器和 Gmail。到目前为止,这些服务对我来说都不起作用。

问题是我在异常发生后没有收到任何电子邮件,并且实际上没有与 logback 相对应的输出(当然,除了 log.error() 输出),这让我思考应用程序甚至不知道这些配置文件...

这些是我在 pom.xml 中的 Maven 依赖项:

<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.2.5.RELEASE</version>
<relativePath />
<!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.2</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20141113</version>
</dependency>
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4</version>
</dependency>
</dependencies>

任何帮助将不胜感激。

最佳答案

smtpappender 中端口的默认条目为 25,gmail 正在使用 smtp 服务身份验证,您需要使用端口 587 用于 TLS,使用端口 465 用于 SSL。

我想说这可能是你的问题。

首先尝试在本地计算机上设置邮件服务器而不进行身份验证,然后尝试您的附加作品。然后尝试查找如何为 gmail 配置它。

来自页面http://logback.qos.ch/manual/appenders.html#gmailSTARTTLS

Gmail 的 SMTPAppender (STARTTLS)

<configuration>   
<appender name="EMAIL" class="ch.qos.logback.classic.net.SMTPAppender">
<smtpHost>smtp.gmail.com</smtpHost>
<smtpPort>587</smtpPort>
<STARTTLS>true</STARTTLS>
<username>YOUR_USERNAME@gmail.com</username>
<password>YOUR_GMAIL_xPASSWORD</password>

<to>EMAIL-DESTINATION</to>
<to>ANOTHER_EMAIL_DESTINATION</to> <!-- additional destinations are possible -->
<from>YOUR_USERNAME@gmail.com</from>
<subject>TESTING: %logger{20} - %m</subject>
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>%date %-5level %logger - %message%n</pattern>
</layout>
</appender>

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

关于java - Spring boot - 使用 Logback 发送电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56848643/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com