问题标签 [smtpappender]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Log4j2 SMTP-Appender “必须先发出 STARTTLS 命令”
我正在尝试通过 java 中的电子邮件发送严重程度为“错误”的日志条目。在我的 log4j2.xml 文件中,我有以下 SMTP 附加程序:
但是当我运行我的程序(由一个主记录字符串组成)时,会发生以下错误:
据我了解,程序可以建立与服务器的连接,但随后Must issue a STARTTLS command first
会发生这种情况。有人可以向我解释这意味着什么以及如何解决它吗?
当我搜索错误时,我收到了一些类似问题的帖子,但不是 log4j2,而是 java.mail,他们没有帮助我。
我尝试使用smtpPort="465"
,smtpProtocol="smtps"
但在这两种情况下,连接都被拒绝了。
我没有更多的新想法,并感谢所有帮助我的人。
java - 使用自定义 SMTPAdapter 时,logback 电子邮件中的 HTMLLayout 没有内容
我设置了一个 Spring-boot 应用程序,当抛出异常时,它每 24 小时最多将 10 条日志发送到特定的电子邮件。我使用logback
它可以工作,但是在实现自定义 SMTPAdapter(以限制电子邮件速率)之后,电子邮件中的 HTMLLayout 只有标题,没有内容,我必须在自定义 SMTPAppender 中更改什么?
想法:
使用默认工作,经过研究我发现我必须在自定义附加程序中设置属性(日期...),但我没有找到任何解决方案。
图片:
对于自定义 SMTPAppender,我使用了以下代码:
https ://stackoverflow.com/a/31081552/6865330
ScheduledSMTPAppender 的代码:
}
java - 自定义 SMTPAppender 中的 scheduleAtFixedRate 不会延迟
当出现异常时,我将对象发送到服务器(大约 90 个),例如端点关闭,Logback 触发自定义 STMP 附加程序,它只发送 1 封电子邮件,最大。10 个日志,然后有一个延迟,其他日志被发送。是否有可能,这start()
被调用得太频繁了?
问题:
scheduler.scheduleAtFixedRate(this::sendEmail, 1, 1L, TimeUnit.HOURS);
执行一次后不延迟,直接执行另一次,使得许多邮件在一个小时内发送出去。
我必须改变调度程序的延迟工作吗?
调试后,我注意到
Attaching appender named [EMAIL] to Logger[ROOT]
发生了两次可能是问题所在,如果是,我该如何解决?
Logback.xml 配置:
附加程序代码:
spring-boot - Spring-boot应用程序中的Logback,两次初始化同一个appender
我的 logback 有两个附加程序,一个控制台和一个电子邮件附加程序,它从我的自定义扩展SMPTAppender
......我的记录器logger.error("My error");
在我的自定义 SMTPAppender 中触发了 x 分钟后发送的电子邮件,问题是,调度程序不会等待延迟,因为两个被初始化。
这发生了两次:
将名为 [EMAIL] 的附加程序附加到 Logger[ROOT]
这就是为什么 IMO 还创建了两个调度程序(start
方法被调用两次)
Logback.xml(问题应该出在哪里):
java - 无法使用 Apache log4j2/slf4j 发送错误邮件
我无法使用 log4j2 发送错误邮件。此外,它没有显示任何类型的异常或其他东西。这是我的 log4j2.xml:
我能够创建日志文件 (app.log) 并能够使用此 log4j2.xml 在控制台上打印错误,但是我无法发送错误邮件。
这是java代码:
我在 Spring 4.0.2 中使用它。
java - 将 Logback 电子邮件限制为 Enrivonment
尽管我正在使用的 Java 项目在每个环境中包含不同的 jconfig XML 文件,但它为整个项目提供了一个 logback XML 文件。
在里面,有一个 SMTPAppender,如:
如您所见,对环境变量的访问是可用的,那么这可以用于仅在某些环境中发送此 ERROR_EMAIL 吗?
非常感谢您的宝贵时间!
java - 即使不存在错误,也可以获取带有执行日志的电子邮件
我的要求:
- 如果在执行过程中遇到错误,我需要发送一封电子邮件,其中包含错误日志以及日志级别 >= INFO 的先前日志。我目前的配置满足这个要求。
- 如果执行过程中没有错误,我需要电子邮件在执行过程中记录所有消息,日志级别 >=INFO。在这里需要帮助。我目前的配置不满足这个要求。
我的 Maven 项目中有以下 log4j2 xml 文件:
在执行以下代码时:
正如预期的那样,我收到了 2 封电子邮件,内容如下:
第一封电子邮件(跟踪和调试被忽略,因为记录器的日志级别设置为info):
第二封邮件:
到目前为止,一切都按预期工作。
问题:在执行以下代码时,我没有收到任何电子邮件(因为没有级别 = ERROR 或 FATAL 的日志)
是这样的情况,是否有可能收到一封包含以下内容的电子邮件?如果是,如何?
已解决:
正如@RemkoPopma 所说,我必须确定电子邮件的触发器,以防执行期间没有错误。我分析了我的日志并检查了每当执行完成而没有任何问题/错误时,我都会发送日志消息Suite execution completed
。所以,记住这一点,我最后使用了 SMTP appender 的复合过滤器,如下所示:
解释:
- 如果在执行过程中出现错误,阈值过滤器会接受日志并发送显示该错误日志的电子邮件以及所有其他以前的日志(满足我的要求 1)
- 如果执行过程中没有错误,则日志消息(level<ERROR)通过阈值过滤器(onMisMatch=NEUTRAL)依次传递到下一个过滤器,即RegexFilter。RegexFilter 将继续拒绝(并将它们添加到缓冲区)日志,除非我们得到包含 text 的日志
Suite execution completed
。一旦遇到此日志,就会触发一封电子邮件,其中包含最终日志消息以及存储在缓冲区中的所有先前日志。
以下是在执行完成后发送给我的,没有任何错误:
java - java mail aws smtp: javax.mail.AuthenticationFailedException: 220 准备启动 TLS
我已经为 smtp appender 配置了以下属性。相同的配置在本地运行良好,但在 AWS 上出现错误
java - Logback 通过 cyclicBufferTracker 发送邮件
下面是我在 Spring Boot 项目中的 logback.xml。cyclicBufferTracker 似乎没有。当生成 5 条错误日志消息时,我需要触发 1 封电子邮件。但目前我收到 5 封不同的电子邮件。如何每 5 条错误日志消息收到 1 封电子邮件
java - log4j2 SmtpAppender 的动态接收者
我尝试通过动态设置邮件的收件人ThreadContext
。如果可能的话,有什么想法吗?
appender 配置如下所示:
调用代码是:
看起来变量替换不适用于收件人地址