{{ v.name }}
{{ v.cls }}类
{{ v.price }} ¥{{ v.price }}
最近写项目考虑把一些运行时候出现的异常发送邮箱,这样可以随时监控错误,网上看可以用log4j发送错误日志到邮箱,现在把这种方式记录下来,以备下次用
1.log4j方式
需要jar包
log4j.rootlogger=mail
#发送错误邮件log4j.appender.mail=org.apache.log4j.net.smtpappenderlog4j.appender.mail.threshold=errorlog4j.appender.mail.buffersize=10log4j.appender.mail.from=*****@126.comlog4j.appender.mail.smtphost=smtp.126.comlog4j.appender.mail.smtpusername=*****log4j.appender.mail.smtppassword=*******log4j.appender.mail.smtpdebug=truelog4j.appender.mail.subject=log4jerrormessagelog4j.appender.mail.to=*****@163.comlog4j.appender.mail.layout=org.apache.log4j.patternlayoutlog4j.appender.mail.layout.conversionpattern=[framework]%d-%c-%-4r[%t]%-5p%c%x-%m%n我用126邮箱发送给163邮箱,打码的依次是发送邮箱名,邮箱名,密码,接收邮箱名,smtpuhost根据每个邮箱不同,需要自己修改,发送邮件的日志级别是error型。
自己测试,每次会发送三次邮件,一次是自己做aop异常捕获的,还有两次是druid打印的错误日志,有点繁琐。决定用第二种方式。
2.自定义邮件发送util
这个还是需要上面的mail包,下面是我自定义的异常邮件发送工具
importorg.springframework.mail.mailexception;importorg.springframework.mail.javamail.javamailsenderimpl;importorg.springframework.mail.javamail.mimemessagehelper;importjavax.mail.messagingexception;importjavax.mail.internet.mimemessage;importjava.io.unsupportedencodingexception;importjava.util.properties;/***description**@authorwangsong*@date19:392018/1/30*/publicclasserrorlogmail{privatestaticfinalstringhost="smtp.126.com";privatestaticfinalintegerport=25;privatestaticfinalstringusername="***@126.com";privatestaticfinalstringpassword="****";privatestaticfinalstringemailform="***@126.com";privatestaticjavamailsenderimplmailsender=createmailsender();/***邮件发送器**@return配置好的工具*/privatestaticjavamailsenderimplcreatemailsender(){javamailsenderimplsender=newjavamailsenderimpl();sender.sethost(host);sender.setport(port);sender.setusername(username);sender.setpassword(password);sender.setdefaultencoding("utf-8");propertiesp=newproperties();p.setproperty("mail.smtp.timeout","25000");p.setproperty("mail.smtp.auth","false");sender.setjavamailproperties(p);returnsender;}/***发送邮件*@paramhtml发送内容*@throwsmessagingexception异常*@throwsunsupportedencodingexception异常*/publicstaticvoidsendhtmlmail(stringhtml){try{mimemessagemimemessage=mailsender.createmimemessage();//设置utf-8或gbk编码,否则邮件会有乱码mimemessagehelpermessagehelper=newmimemessagehelper(mimemessage,true,"utf-8");messagehelper.setfrom(emailform,"wangsong");messagehelper.setto("******@163.com");messagehelper.setsubject("errorlog");messagehelper.settext(html,true);mailsender.send(mimemessage);}catch(messagingexceptione){e.printstacktrace();}catch(unsupportedencodingexceptione){e.printstacktrace();}catch(mailexceptione){e.printstacktrace();}}
logger.error(pjp.getsignature()+"error",e);//不可知异常,发送邮件errorlogmail.sendhtmlmail("时间:"+newdate()+"方法:"+pjp.getsignature()+"原因:"+e.tostring());