• 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,

  • 相关阅读:
    为什么表单中post接受数据是获取name值而不是id值
    YII2 定义页面提示
    yii相关手册文档
    使用后台程序的第一个表单Form
    使用后台程序的第一个程序hello word
    yii:高级应用程序搭建数据库的详细流程
    详细步骤教你安装yii高级应用程序和配置composer环境
    sys模块
    os
    time和datetime
  • 原文地址:https://www.cnblogs.com/longsanshi/p/7250276.html
Copyright © 2020-2023  润新知