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通过配置文件配置即,即可完成系统报错想向指定邮箱发送提醒消息,网上的很多方法都又问题的主要内容,如果未能解决你的问题,请参考以下文章
普歌-log4j.xml配置文件“http//jakarta.apache.org/log4j/”报错,URL为注册
LRF-log4j.xml配置文件“http//jakarta.apache.org/log4j/”报错,URL为注册