log4j通过配置文件配置即,即可完成系统报错想向指定邮箱发送提醒消息,网上的很多方法都又问题

Posted longtengdama

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了log4j通过配置文件配置即,即可完成系统报错想向指定邮箱发送提醒消息,网上的很多方法都又问题相关的知识,希望对你有一定的参考价值。

我参考了下面的链接去实现,但是遇到了一些问题

参考链接:

1)http://blog.csdn.net/azheng270/article/details/2173430/ 这个链接说了如何操作的问题,但是他的log4j的配置文件感觉有问题

2)http://blog.csdn.net/cosmichut/article/details/2448159  log4j配置相对又点全

 

大致说一下步骤:

1.下载activation.jar和mail.jar,导入项目

2.下载log4j的压缩包文件,记得下载zip格式的。里面你回看到NETeventLogAppender.dll以及对应64位版本的,放到NTEventLogAppender.dll拷到WINNT/SYSTEM32目录下,如果是64位的记得放入的是64的那个dll

3.配置文件log4j的设置,下面又粘贴

4.测试代码

package com.thinkgem.jeesite.test;
import org.apache.log4j.*;
public class Log4jtest {
     public static void main(String args[])
      {
       PropertyConfigurator.configure("D:\\\\workspace3\\\\jeesite\\\\src\\\\main\\\\resources\\\\log4j.properties");
       //在后台输出
       Logger logger1 = Logger.getLogger("console");
       logger1.debug("debug!!!");
       logger1.info("info!!!");
       logger1.warn("warn!!!");
       logger1.error("error!!!");
       logger1.fatal("fatal!!!");
    //在NT系统日志输出
       Logger logger2 = Logger.getLogger("NTlog");
       //NTEventLogAppender nla = new NTEventLogAppender();
       logger2.debug("debug!!!");
       logger2.info("info!!!");
       logger2.warn("warn!!!");
       logger2.error("error!!!");
       //只有这个错误才会写入2000日志
       logger2.fatal("fatal!!!");
    //把日志发送到mail
       Logger logger3 = Logger.getLogger("MailLog");
       //SMTPAppender sa = new SMTPAppender();
       logger3.warn("warn!!!");
       logger3.error("error!!!");
       logger3.fatal("fatal!!!");
      }
}

 

需要的东西如下截图

问题一:链接一中的测试代码里面:PropertyConfigurator.configure("log4j.properties");我换成绝对路径才不报错。我的在d盘下面,相对路径没有成功。

问题二:1.把Log4j压缩包里的NTEventLogAppender.dll拷到WINNT/SYSTEM32目录下,去网上下载log4j的压缩包文件 .zip结尾的文件,有64位的和32位的要注意

问题三:你fromMail,要去开通过,获得一个密码,你通过发一个短信给服务器,服务器会发给你。不然人人的可以用别人的邮箱随便发内容了

问题四:log4j中的邮箱服务器端口:开始的时候没有设置,端口默认是25,不对,然后我设置了465,发现也不行最后尝试了一下587ok了

 

最后给出我的log4j的配置文件

 log4j.logger.console=DEBUG, A1
 # APPENDER A1
 log4j.appender.A1=org.apache.log4j.ConsoleAppender
 log4j.appender.A1.layout=org.apache.log4j.PatternLayout
 log4j.appender.A1.layout.ConversionPattern=%-4r %-5p [%t] %37c %3x - %m%n
 log4j.logger.NTlog=FATAL, A8
 # APPENDER A8
 log4j.appender.A8=org.apache.log4j.nt.NTEventLogAppender
 log4j.appender.A8.Source=JavaTest
 log4j.appender.A8.layout=org.apache.log4j.PatternLayout
 log4j.appender.A8.layout.ConversionPattern=%-4r %-5p [%t] %37c %3x - %m%n
 log4j.logger.MailLog=WARN,A5
log4j.appender.A5=org.apache.log4j.net.SMTPAppender
log4j.appender.A5.Threshold=ERROR
log4j.appender.A5.BufferSize=10
log4j.appender.A5.From=333333@qq.com
log4j.appender.A5.SMTPHost=smtp.qq.com
log4j.appender.A5.SMTPUsername=222222@qq.com
log4j.appender.A5.SMTPPassword=服务器给你发的密码
log4j.appender.A5.SMTPDebug=true

log4j.appender.A5.Subject=Log4J Error Message
log4j.appender.A5.To=222222@qq.com
log4j.appender.A5.layout=org.apache.log4j.PatternLayout
log4j.appender.A5.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n

log4j.appender.A5.SMTPPort=587

以下我qq:1195748576,

 

以上是关于log4j通过配置文件配置即,即可完成系统报错想向指定邮箱发送提醒消息,网上的很多方法都又问题的主要内容,如果未能解决你的问题,请参考以下文章

在linux下配置log4j

log4j配置实例

普歌-log4j.xml配置文件“http//jakarta.apache.org/log4j/”报错,URL为注册

LRF-log4j.xml配置文件“http//jakarta.apache.org/log4j/”报错,URL为注册

2019-07-03 log4j2 自定义ElasticSearch Appender

log4j使用及配置详解