zoukankan      html  css  js  c++  java
  • 使用Log4J监控系统日志邮件警报

     

    使用Log4J监控系统日志邮件警报

     

    前言

      在系统上线后,有时候遇到系统故障,这时候就可以登录服务器查看系统日志来排查问题。但是需要登录服务器,下载查找相关异常日志比较麻烦。而且没有监控的话,也无法实时了解到系统是否正常运行。那么有没有一种好办法将系统异常信息实时反馈给相关人员呢?

      本文讲的就是借助Log4J来记录程序运行日志,当一旦发现系统异常或者自己定义的其他一些情况发生时,及时通过邮件形式发送给相关负责人,并附上相关的系统日志信息,这样负责人就可以实时便捷的监控到系统的状态和相关异常信息。

    另外

      需要了解Log4J组件的使用,可以查看我以前写的这篇博客:Log4J的配置与使用详解[戳我]

    优点

      采用这种方式的优点有:

    1. 实时性。不用定期或不定期的登陆系统查看是否正常运行。
    2. 及时性。一旦系统异常,就会通知。
    3. 便捷性。邮件里附上异常日志,不用登陆系统下载日志查看。

    环境

      导入依赖jar包:

      1. log4j-1.2.17.jar

      官网下载地址[戳我]

      目前log4j最新版是1.2.17。低版本的log4j无法实现邮件发送功能,因为版本低于log4j-1.2.14.jar的不支持SMTP认证。

      发送邮件的一个重要的类是SMTPAppender,在1.2.8的版本中,SMTPAppender没有SMTPUsername和SMTPPassword属性。这两个属性分别是登录SMTP服务器发送认证的用户名和密码。

      2. mail-1.4.jar

      发送邮件当然需要用到JavaMail包啦。

      3. activation-1.1.jar

    配置

      配置log4j.properties文件,如下:

     1 log4j.rootLogger=DEBUG, MAIL
     2 
     3 log4j.appender.MAIL=org.apache.log4j.net.SMTPAppender
     4 log4j.appender.MAIL.Threshold=ERROR
     5 log4j.appender.MAIL.BufferSize=10
     6 log4j.appender.MAIL.From=123@qq.com
     7 log4j.appender.MAIL.SMTPHost=smtp.qq.com
     8 log4j.appender.MAIL.SMTPUsername=123
     9 log4j.appender.MAIL.SMTPPassword=***
    10 log4j.appender.MAIL.SMTPDebug=false
    11 log4j.appender.MAIL.Subject=Log4JErrorMessage
    12 log4j.appender.MAIL.To=123@qq.com
    13 log4j.appender.MAIL.layout=org.apache.log4j.PatternLayout
    14 log4j.appender.MAIL.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%t] %-5p %c %x -- %m%n

       每行配置详解:

      3.log4j的邮件发送appender,如果有必要你可以写自己的appender。

      4.发送邮件的门槛,仅当等于或高于ERROR级别时,邮件才被发送。

      5.缓存文件大小,日志达到10k时发送Email。

      6.发送邮件的邮箱帐号。

      7.SMTP邮件发送服务器地址。

      8.SMTP发送认证的帐号名。

      9.SMTP发送认证帐号的密码。

      10.是否打印调试信息,如果选true,则会输出和SMTP之间的握手等详细信息

      11.邮件主题。

      12.发送到什么邮箱,如果要发送给多个邮箱,则用逗号分隔。

    其他

      如果需要抄送给某人,则添加如下配置:

    log4j.appender.MAIL.Bcc=xxx@xxx.xxx

      想让邮件内容日志以HTML格式来输出,则配置:

    log4j.appender.MAIL.layout=org.apache.log4j.HTMLLayout

      输出到邮件中显示如下图:

     

  • 相关阅读:
    会话追踪技术
    request session application
    Java CAS同步机制 原理详解(为什么并发环境下的COUNT自增操作不安全): Atomic原子类底层用的不是传统意义的锁机制,而是无锁化的CAS机制,通过CAS机制保证多线程修改一个数值的安全性。
    mysql连接拍错总结
    git 从分支上创建一个分支
    linux ---> taskkill pid 8080 /f
    阿里java开发规范 强制约束
    for break
    Mybatis Update操作返回值问题
    springboot 缓存架构
  • 原文地址:https://www.cnblogs.com/hellojava/p/3597306.html
Copyright © 2011-2022 走看看