科帮网-Java论坛、Java社区、JavaWeb毕业设计

登录/注册
您现在的位置:论坛 资料库 JAVA开发 > log4j配置邮件发送
总共48086条微博

动态微博

查看: 1521|回复: 0

log4j配置邮件发送

[复制链接]
admin    

1244

主题

544

听众

1万

金钱

管理员

  • TA的每日心情

    2021-2-2 11:21
  • 签到天数: 36 天

    [LV.5]常住居民I

    管理员

    跳转到指定楼层
    楼主
    发表于 2016-08-25 14:50:00 |只看该作者 |倒序浏览
    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配置:
    1. log4j.rootLogger=info,stdout,MAIL
    2. #控制台
    3. log4j.appender.stdout=org.apache.log4j.ConsoleAppender
    4. log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
    5. log4j.appender.stdout.layout.ConversionPattern=[acts_competition]|%d{yyyy-MM-dd HH:mm:ss:SSS}|%m%n
    6. #info日志
    7. log4j.category.acts_competition_info=info,acts_competition_info
    8. log4j.appender.acts_competition_info=biz.minaret.log4j.DatedFileAppender
    9. log4j.appender.acts_competition_info.Prefix=acts_competition_info.
    10. log4j.appender.acts_competition_info.Suffix=.txt
    11. log4j.appender.acts_competition_info.Directory=${catalina.home}/log
    12. log4j.appender.acts_competition_info.layout=org.apache.log4j.PatternLayout
    13. log4j.appender.acts_competition_info.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss}|%m%n
    14. #是否输出到控制台 默认为true
    15. log4j.additivity.acts_competition_info=true
    16. #error日志
    17. log4j.category.acts_competition_error=error,acts_competition_error
    18. log4j.appender.acts_competition_error=biz.minaret.log4j.DatedFileAppender
    19. log4j.appender.acts_competition_error.Prefix=acts_competition_error.
    20. log4j.appender.acts_competition_error.Suffix=.txt
    21. log4j.appender.acts_competition_error.Directory=${catalina.home}/log
    22. log4j.appender.acts_competition_error.layout=org.apache.log4j.PatternLayout
    23. log4j.appender.acts_competition_error.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss}|%m%n
    24. #是否输出到控制台 默认为true
    25. log4j.additivity.acts_competition_error=true
    26. #debug日志
    27. log4j.category.acts_competition_debug=info,acts_competition_debug
    28. log4j.appender.acts_competition_debug=biz.minaret.log4j.DatedFileAppender
    29. log4j.appender.acts_competition_debug.Prefix=acts_competition_debug.
    30. log4j.appender.acts_competition_debug.Suffix=.txt
    31. log4j.appender.acts_competition_debug.Directory=${catalina.home}/log
    32. log4j.appender.acts_competition_debug.layout=org.apache.log4j.PatternLayout
    33. log4j.appender.acts_competition_debug.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss}|%m%n
    34. #是否输出到控制台 默认为true
    35. log4j.additivity.acts_competition_debug=false
    36. # 发送日志到指定邮件
    37. log4j.appender.MAIL=org.apache.log4j.net.SMTPAppender
    38. #是否打印调试信息,如果选true,则会输出和SMTP之间的握手等详细信息
    39. log4j.appender.MAIL.SMTPDebug=false
    40. #发送邮件的门槛,仅当等于或高于ERROR(比如FATAL)时,邮件才被发送  
    41. log4j.appender.MAIL.Threshold=ERROR
    42. #缓存文件大小,日志达到10k时发送EMAIL  
    43. log4j.appender.MAIL.BufferSize=10
    44. #发送邮件的邮箱帐号  
    45. log4j.appender.MAIL.From =345849402@qq.com
    46. #SMTP邮件发送服务器地址
    47. log4j.appender.MAIL.SMTPHost=smtp.exmail.qq.com
    48. #SMTP发送认证的帐号名  
    49. log4j.appender.MAIL.SMTPUsername=345849402@qq.com
    50. #SMTP发送认证帐号的密码
    51. log4j.appender.MAIL.SMTPPassword=123456
    52. #邮件主题  
    53. log4j.appender.MAIL.Subject=竞赛项目异常信息
    54. #发送到什么邮箱,如果要发送给多个邮箱,则用逗号分隔;  
    55. #如果需要发副本给某人,则加入下列行
    56. log4j.appender.MAIL.To=345849402@qq.com
    57. log4j.appender.MAIL.layout=org.apache.log4j.PatternLayout
    58. #log4j.appender.MAIL.layout=org.apache.log4j.HTMLLayout
    59. log4j.appender.MAIL.layout.ConversionPattern=[%-5p] %d(%r) --> [%t] %l: %m %x %n
    复制代码

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

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


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


    科帮网-Java论坛、Java社区、JavaWeb毕业设计 1、本主题所有言论和图片纯属会员个人意见,与本社区立场无关
    2、本站所有主题由该帖子作者发表,该帖子作者与科帮网-Java论坛、Java社区、JavaWeb毕业设计享有帖子相关版权
    3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和科帮网-Java论坛、Java社区、JavaWeb毕业设计的同意
    4、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任
    5、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
    6、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
    7、科帮网-Java论坛、Java社区、JavaWeb毕业设计管理员和版主有权不事先通知发贴者而删除本文


    JAVA爱好者①群:JAVA爱好者① JAVA爱好者②群:JAVA爱好者② JAVA爱好者③ : JAVA爱好者③

    相关帖子
      快速回复
      您需要登录后才可以回帖 登录 | 立即注册

         

      发布主题 快速回复 返回列表 联系我们 官方QQ群 科帮网手机客户端
      快速回复 返回顶部 返回列表