前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >log4j配置邮件发送

log4j配置邮件发送

作者头像
小柒2012
发布2018-04-13 16:02:48
9970
发布2018-04-13 16:02:48
举报
文章被收录于专栏:IT笔记IT笔记

log4j为java提供记录日志文件的包,提供了多种方式记录,包括终端(Console),文件(File),数据库(JDBC),邮件(SMTP)等等。

本来系统中日志记录以及警报是用的elk系统,但是这只是一个小项目,然后就用了log4j自带的邮件发送。

使用方法 1,导入需要的3个包 log4j-1.2.15.jar mail.jar activation.jar 要使用log4j必须使用到“log4j-1.2.15.jar”,推荐用14以上版本,因为版本低于log4j-1.2.14.jar不支持SMTP认证,如果发送到邮件时,并且这个邮件服务商是需要认证的(也就是说需要账号和密码),需要自己封装这个功能,不过现在用的15次修订版,已经封装进这个功能,可以直接拿来用了。

log4j.properties配置:

代码语言:javascript
复制
log4j.rootLogger=info,stdout,MAIL

#控制台
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=[acts_competition]|%d{yyyy-MM-dd HH:mm:ss:SSS}|%m%n

#info日志
log4j.category.acts_competition_info=info,acts_competition_info
log4j.appender.acts_competition_info=biz.minaret.log4j.DatedFileAppender
log4j.appender.acts_competition_info.Prefix=acts_competition_info.
log4j.appender.acts_competition_info.Suffix=.txt
log4j.appender.acts_competition_info.Directory=${catalina.home}/log
log4j.appender.acts_competition_info.layout=org.apache.log4j.PatternLayout
log4j.appender.acts_competition_info.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss}|%m%n
#是否输出到控制台 默认为true
log4j.additivity.acts_competition_info=true

#error日志
log4j.category.acts_competition_error=error,acts_competition_error
log4j.appender.acts_competition_error=biz.minaret.log4j.DatedFileAppender
log4j.appender.acts_competition_error.Prefix=acts_competition_error.
log4j.appender.acts_competition_error.Suffix=.txt
log4j.appender.acts_competition_error.Directory=${catalina.home}/log
log4j.appender.acts_competition_error.layout=org.apache.log4j.PatternLayout
log4j.appender.acts_competition_error.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss}|%m%n
#是否输出到控制台 默认为true
log4j.additivity.acts_competition_error=true

#debug日志
log4j.category.acts_competition_debug=info,acts_competition_debug
log4j.appender.acts_competition_debug=biz.minaret.log4j.DatedFileAppender
log4j.appender.acts_competition_debug.Prefix=acts_competition_debug.
log4j.appender.acts_competition_debug.Suffix=.txt
log4j.appender.acts_competition_debug.Directory=${catalina.home}/log
log4j.appender.acts_competition_debug.layout=org.apache.log4j.PatternLayout
log4j.appender.acts_competition_debug.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss}|%m%n
#是否输出到控制台 默认为true
log4j.additivity.acts_competition_debug=false

# 发送日志到指定邮件 
log4j.appender.MAIL=org.apache.log4j.net.SMTPAppender
#是否打印调试信息,如果选true,则会输出和SMTP之间的握手等详细信息
log4j.appender.MAIL.SMTPDebug=false
#发送邮件的门槛,仅当等于或高于ERROR(比如FATAL)时,邮件才被发送  
log4j.appender.MAIL.Threshold=ERROR
#缓存文件大小,日志达到10k时发送EMAIL  
log4j.appender.MAIL.BufferSize=10
#发送邮件的邮箱帐号  
log4j.appender.MAIL.From =345849402@qq.com
#SMTP邮件发送服务器地址
log4j.appender.MAIL.SMTPHost=smtp.exmail.qq.com
#SMTP发送认证的帐号名  
log4j.appender.MAIL.SMTPUsername=345849402@qq.com
#SMTP发送认证帐号的密码 
log4j.appender.MAIL.SMTPPassword=123456
#邮件主题  
log4j.appender.MAIL.Subject=竞赛项目异常信息
#发送到什么邮箱,如果要发送给多个邮箱,则用逗号分隔;  
#如果需要发副本给某人,则加入下列行 
log4j.appender.MAIL.To=345849402@qq.com 
log4j.appender.MAIL.layout=org.apache.log4j.PatternLayout 
#log4j.appender.MAIL.layout=org.apache.log4j.HTMLLayout
log4j.appender.MAIL.layout.ConversionPattern=[%-5p] %d(%r) --> [%t] %l: %m %x %n 

说说测试中遇到的坑吧,启动警告信息(一开始没注意),提示没有密码和账号这两个参数,显然邮件是认证失败的,然后报错553 authentication is required。

1.png
1.png

查看源码 org.apache.log4j.net.SMTPAppender类相关参数如下:

2.png
2.png

参数,复制粘贴也没问题啊,各种百度查询,参数也是这样配置。然后竟然忽略了大小写,网上很多是smtp是大写的,于是乎改成了大写,果真没有警告信息,邮件也发送成功了。暂时还不清楚为啥小写不可以~~~

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016-08-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档