Log4j 配置错误信息发送Mail

Log4j 邮件配置 NULL 博文链接:https://luhai1992.iteye.com/blog/1143887 立即下载

近来不是很忙,看了看log4j,然后看到log4j里面有appender到mail的功能,个人做了点了解和实验,写了个简单的demo做了点测试。

Log4j发送日志邮件的作用:
      项目错误信息能及时(实时)反映给项目维护人员以及相关负责人。

优点:
      1.快速响应;
      2.共同监督;
      3.邮件正文直接显示了错误信息,拷贝信息比登陆服务器再查找要方便;
      4.在日志信息继续写入文件的前提下,多了另外一种获取信息的渠道。

首先:在apache官网下载相关最新的jar包,并在项目中引用(activation.jar,mail.jar),此外还有log4j的jar包,此例用的是(log4j-1.2.16.jar)

在测试的过程中发现了已下几点问题并解决,和大家分享下:

1.首先我测试的时候是用的info的级别,所以在发送mail的过程中出错了,信息都不会打印出来,并且mail也收不到,我就很奇怪,然后我把log的级别调成error,控制台才打印出了mail 发送失败的log信息,经查阅发现:Log4j的SMTP的级别默认是ERROR级别
默认是ERROR级别,那就是说,只有程序出错了,才可以收到邮件。不过可以自定义的级别,继承TriggeringEventEvaluator类,具体实现见下方代码:

public class IMTriggeringEventEvaluator implements TriggeringEventEvaluator {

	@Override
	public boolean isTriggeringEvent(LoggingEvent arg0) {

		return arg0.getLevel().isGreaterOrEqual(Level.DEBUG);
	}

}
自定义的Appender:
import org.apache.log4j.net.SMTPAppender;
import org.apache.log4j.spi.LoggingEvent;

public class IMSMTPAppender extends SMTPAppender {
	public IMSMTPAppender() {
		super(new IMTriggeringEventEvaluator());
		Runtime.getRuntime().addShutdownHook(new Thread() {
			public void run() {
				if (cb.length() > 0) {
					sendBuffer();
				}
			}
		});
	}

此时比>=debug的级别都可以实现.

2 log报错的信息看到了,报了如下的错误:

javax.mail.MessagingException: Could not connect to SMTP host: smtp.163.com, port: 25;

这个时候通过上网查找,才发现是我本地机器上装了MACFEE杀毒软件,该软件里面的一个端口保护规则将port 25给阻止了,禁止群发邮件蠕虫发送邮件。然后把杀软关了或者把该规则去掉就ok 了

3 去掉以后还是会报

530 5.7.0 Must issue a STARTTLS command first
此时我用的是gamil的smtp服务器,我换成163的就不报错了,经查阅是有的邮件服务器会拒绝该方式连接到邮件服务器上

4虽然连接163邮件服务器成功,可是此时还是会报AuthenticationFailedException异常,经查阅,是邮件服务器要对from 邮件的用户名和密码做认证,认证过了才能发送,可是这个时候我并没有发现我的log4j的参数文件里面可以配置SMTPUsername的属性,经查阅发现我当前用的是log4j1.2.6,在1.2.6的版本中,SMTPAppender没有SMTPPassword 和SMTPUsername 属性,更谈不上验证了。这两个属性分别是登录SMTP服务器发送认证的用户名和密码。1.2.9之后的版本才有这两个属性。

log4j也提供了邮件认证的API,但是网上有网友也遇到这样的问题,解决方法A 自定义Appender 继承org.apache.log4j.net.SMTPAppender,在这个类里面封装认证的逻辑,B使用log4j1.2。14以上版本,1.2.14以上版本集成了认证的功能,所以我果断把我的1.2.6版本换成了1.2.16,果断ok了。

CSR mascon产品深度解析 GRACE数据产品 mascon产品 质量变化 地球重力场 阅读详情

相关推荐

化学科学催化反应产率预测之Transformer建模SMILES(Datawhale AI 夏令营)

循环神经网络:由于所有的前文信息都蕴含在一个隐向量中,随着序列长度的增加,早期的上下文信息会逐渐被遗忘。卷积神经网络:受限的上下文窗口在建模长文本时存在天然不足。需要多层卷积操作才能处理长文本。在本篇文章中,我们学习了Transformer的基本架构及其在化学反应产率预测中的应用。通过利用Transformer的Encoder部分对SMILES进行建模,我们能够更有效地捕捉序列数据的特征,从而提高模型的预测性能。

不想宅的冷同学 1096

log4j发送日志邮件

目录 1、使用背景 2、log4j配置 3、可能遇到的问题 步骤一: 步骤二: 4、结果 1、使用背景      使用log4j记录错误日志是个非常好的习惯,log4j也是非常好用,假设我们的线上系统出了错误,需要给项目负责人和开发人员发日志,那么log4j也是个不错的选择。 2、log4j配置 log4j.rootLogger=ERROR, mail log4j.appen...

蕉下客 1413

Godot 4.x 实现 JRPG 回合制战斗系统:架构、状态机与实战优化

游戏开发中,状态机是管理复杂逻辑流转的核心设计模式,尤其在回合制战斗这类事件驱动的场景中。其原理是通过定义有限的状态和明确的转移条件,来控制系统在不同阶段的行为,从而实现清晰、可维护的流程控制。这项技术的价值在于能够将杂乱的条件判断代码结构化,降低模块间的耦合度,提升代码的可读性和可扩展性。在游戏开发领域,状态机广泛应用于角色AI、UI流程、战斗系统等场景。本文以Godot引擎为例,深入探讨如何运用节点与信号驱动架构,构建一个健壮的JRPG(日式角色扮演游戏)回合制战斗系统。内容涵盖从核心的**状态机**设

weixin_33749242的博客 500

log4j实现发送邮件功能

引言 最近预上线的一个机器人项目,因为这个项目中有很多的AI的东西,整个项目分为三部分组成,web工程——FS——NLU,整个web工程都是由我来负责,后面两部分有大数据部门的东西负责,因为后面这两部分对于我们贷后行业来说都是比较超前的,所以在整个连调的过程中会有很多的异常的情况,但是很多的时候都是后面两部分的原因,但是每次都需要我去查看日志,之前我通logstash将日志收集到了es中,但是我...

Jack 架构师之路 1585

从零搭建自动驾驶仿真环境:我的Nuplan-devkit实战笔记(含PyCharm配置技巧)

本文详细记录了从零搭建Nuplan-devkit自动驾驶仿真环境的完整流程,包括conda环境配置、pip版本控制、PyCharm专业版集成等关键步骤。特别针对Ubuntu系统下的依赖管理、数据目录优化和性能调优提供了实用技巧,帮助开发者高效构建稳定的自动驾驶仿真开发环境。

weixin_30505225的博客 480

【无标题】IP804A参考资料和管脚作用图

3.3V内置led控制内置EEPROM接口,用于哑应用ip804a,可集成为4X N端口PSE稳压器内置支持外部设备。多个系统和IC总线用于从每个IP804A收集PD电源状态,以支持全局电源管理。多个ip804a可以构建一个具有成本效益的PHY级PSE系统以支持PD分类和电源管理,而无需主机。基于LLDP(IEEE标准8023AT-2009的一部分),可以实时维护PSE和PD之间的动态电源管理,以提高电源效率。IP804A是一款用于POE(以太网供电)系统的4端口PSE(电源设备)控制器IC。

2301_78055735的博客 1059

log4j自动发送错误日志邮件

log4j自动发送错误日志邮件

LOW_KEY1234的博客 1142

BitLocker磁盘锁定解决方法

摘要:本文介绍了BitLocker加密磁盘被锁的两种情况及解决方法。对于系统盘锁定,建议在微软账户中查找48位恢复密钥;数据盘锁定可尝试密码或恢复密钥解锁。若密钥丢失,可通过IT支持或数据恢复服务尝试解决。预防措施包括妥善备份密钥到微软账户和离线位置,避免随意更改系统硬件配置。BitLocker安全性高,恢复密钥是解锁关键,提醒用户务必做好备份以防数据丢失。(148字)

yueke06442300的专栏 2678

如何将javamail中的debug日志输出到应用的日志框架中

在使用javamail的时候,有时我们会打开debug,让javamail输出debug日志。但是,javamail默认是输出到System.out中,如果应用使用的是log4j或logback之类的日志框架,如何将javamail的debug日志也统一由这些日志框架来处理呢? javamail中,日志是使用PrintStream来输出的,默认的实现是输出到System.out,如果想自行实现PrintStream类,就可以自己决定日志输出到哪里了。javamail使用到了PrintStream的..

qq_34823218的博客 1507

《探秘 BME680温度湿度气压气体传感器模块:环境感知的卓越之选》:此文为AI自动生成

BME680 是一款由博世公司推出的集成环境传感器模块,在环境监测和物联网等领域中发挥着重要作用。它能够同时测量温度、湿度、气压和气体浓度等多个环境参数,为各种应用提供准确可靠的环境数据。该模块采用小巧的封装形式,便于集成到各种设备中,无论是智能家居、可穿戴设备还是工业监测系统,都能轻松适配。例如,在智能家居系统中,BME680 模块可以监测室内环境参数,如温度、湿度、气压和空气质量等。通过与智能家居控制器或智能手机应用程序的连接,用户可以实时了解室内环境状况,并根据需要进行调整。

zheng_ruiguo的专栏 1874

转义序列字符(\0,\n,\r,\t,\v,\a,\f,\b,\\,\‘,\“,\?)详解,转义字符对应的全称,输出结果和对应的ASCII码值详解;

转义序列字符(\0,\n,\r,\t,\v,\a,\f,\b,\\,\',\",\?)详解,转义字符对应的全称,输出结果和对应的ASCII码值详解;

南城花开过的博客 3万+

slf4j-log4j error级别日志发送邮件配置

#用Email发送日志 log4j.appender.logMail = org.apache.log4j.net.SMTPAppender log4j.appender.logMail.layout = org.apache.log4j.HTMLLayout log4j.appender.logMail.layout.LocationInfo = TRUE log4j.appender.log...

bentengdi的博客 1892

飞牛fnNAS搭建私有云音乐库

本文介绍了在飞牛NAS上部署Navidrome音乐服务器的完整流程。首先创建音乐存储目录并安装Navidrome应用,然后配置管理员账号、语言设置和音乐路径。接着详细说明使用"音乐标签"软件刮削音乐元数据的方法,包括获取软件、导入音乐文件和自动匹配标签。针对远程访问需求,推荐使用ZeroTier实现内网穿透,并给出注册、创建网络及设备加入的具体步骤。最后介绍移动端使用"音流"APP连接Navidrome服务器的配置方法,实现手机端音乐播放。通过这套方案,用户可以搭建专

dgnankai的专栏 1827

强大的log4j,错误信息自动发送至邮箱

log4j将错误发送至自己邮箱,偶尔在看代码时找的小知识点,分享给大家

张小竟 2927

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Log4j-自动发送日志邮件

Log4j发送日志邮件的作用:项目错误信息能及时(实时)反映给项目维护人员以及相关负责人。 补充:发送邮件的一个重要的类是SMTPAppender,版本低于log4j-1.2.14.jar不支持SMTP认证(SMTPAppender中没有SMTPPassword 和SMTPUsername 属性,这两个属性分别是登录SMTP服务器发送认证的用户名和密码)。 1. 简单操作 1) 项目采用ma

殷建卫 1万+

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

配置log4j错误信息Email通知

在大多数项目中,我们的都在公司开发后再把程序部署到客户处。由于各种原因,客户方的服务器对我们不可访问。这样对我们日后的跟踪调试就带来极大的不便,当然也给咱们减少了安全上的担心. 今日正好心神不宁,就上网瞎逛,在onjava.com上看到使用log4j配置日志信息email发送的教程,就尝试在自己的机器上试验了一番,配置过程如下:1.  打开log4j.properties文件2.  rootLog

chho的专栏 1189

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

通过log4j实现发送错误信息的邮件功能

通过log4j实现发送错误信息的邮件功能 1.使用的场景            当你的项目是要部署到服务器上时,因为程序员没办法 无时无刻的盯着 tomacat的log日志去看,所以我们需要一种当出现错误信息的可以主动提醒我们的方式。因为通过配置log4j实现发送错误信息的邮件功能 可以在很大程度上面帮忙我们减少工作上的压力,节省我们的时间 2.实现的过程    首先我们需要log4j

我的树洞 2758

LOG4J 配置 Email

/** 在用log4j把错误信息通过邮箱发送邮件,因为要发送邮件,所以要导入mail.jar **/ //下面是log4j.properties配置文件 log4j.rootLogger=ERROR,CONSOLE,FILE,MAIL #DEBUG,CONSOLE,FILE,ROLLING_FILE,MAIL,DATABASE <!--log4j.logger.or...

dengpinshuo2520的博客 182

Log4j 发送 EMail 的配置

<br />项目上线后,运行时往往也还会有异常发生,在异常抛出时,希望即时的得到反馈。所以需要配置LOG4J的发送EMAIL功能。<br /><br />       项目中原来使用的的Log4j版本为1.2.9 ,但此版本并不支持邮件服务的认证功能 ,遂重新下载了最新的版本1.2.14 ,查看源代码<br /> 此版本支持认证功能 ,下面是 log4j.properties 的具体配置 :<br /><br />  ## ROOT<br /> log4j.rootLogger=INFO,CONSO

giianhui的专栏 1135

SpringBoot日志组件log4j2.x与异常发送邮件

SpringBoot日志组件log4j2.x与异常发送邮件

雷神乐乐的博客 994

Log4j 自动发送日志邮件

Log4j发送日志邮件的作用:项目错误信息能及时(实时)反映给项目维护人员以及相关负责人。 补充:发送邮件的一个重要的类是SMTPAppender,版本低于log4j-1.2.14.jar不支持SMTP认证(SMTPAppender中没有SMTPPassword 和SMTPUsername 属性,这两个属性分别是登录SMTP服务器发送认证的用户名和密码)。 1. 简单操作 1) 项目采用ma

LANGZI7758521的专栏 1620

Log4j发送日志邮件功能

Log4j发送日志邮件的作用: 项目错误信息能及时(实时)反映给项目维护人员以及相关负责人。 优点: 1.快速响应; 2.共同监督; 3.邮件正文直接显示了错误信息,拷贝信息比登陆服务器再查找要方便; 4.在日志信息继续写入文件的前提下,多了另外一种获取信息的渠道。 补充:Log4j可以实现输出到控制台,文件,回滚文...

半岛铁盒 416
上一篇: oracle彻底卸载,出错无需重装系统
下一篇: Oracle用户解锁
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值