使用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

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

 

转载于:https://www.cnblogs.com/hellojava/p/3597306.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/421110.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

1044. 火星数字(20)

1044. 火星数字(20) 时间限制400 ms内存限制65536 kB代码长度限制8000 B判题程序Standard作者CHEN, Yue火星人是以13进制计数的: 地球人的0被火星人称为tret。 地球人数字1到12的火星文分别为:jan, feb, mar, apr, may, jun, jly, aug, sep, oct, nov, d…

TCP协议下 Socket 与 ServerSocket

不多bb. package c_20_1_5;import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.InetAddress; import java.net.ServerSocket; import java.net.Socke…

Autodesk的照片建模云服务—Autodesk ReCap 360 photo

现实捕捉技术方兴未艾,简单的讲现实捕捉技术就是把现实中的现状信息数字化到计算机中以便做进一步的处理。对于不同的应用目的会有不同的捕捉设备,工程或传媒娱乐行业中经常用到的肯定就是三维模型了。那如何得到三维模型呢?我们有多种途径和…

1055. 集体照 (25)

1055. 集体照 (25) 时间限制400 ms内存限制65536 kB代码长度限制8000 B判题程序Standard作者CHEN, Yue拍集体照时队形很重要,这里对给定的N个人K排的队形设计排队规则如下: 每排人数为N/K(向下取整),多出来的人全部站在…

线程下的udp和tcp局域网聊天

多线程,继承Thread类,重写run方法。 udp下的聊天。 两方,每一方都可发,可收。 import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; import java.util.…

委托事件实现更新窗体

委托 和 事件在 .Net Framework中的应用非常广泛。 委托( Delegate ):是一种定义方法签名(只有方法的名字,没有方法体),可以与具有兼容的签名的任何方法关联。所谓兼容的方法,是指 这个方法和委托的方法签名具有相同的返回类型和参…

1050. 螺旋矩阵(25)

1050. 螺旋矩阵(25) 时间限制150 ms内存限制65536 kB代码长度限制8000 B判题程序Standard作者CHEN, Yue本题要求将给定的N个正整数按非递增的顺序,填入“螺旋矩阵”。所谓“螺旋矩阵”,是指从左上角第1个格子开始,按顺时针螺旋方向填充。要求…

Java多线程,锁(synchronize),饿汉式单例线程,等待处理机制

一,礼让和守护线程 package com.much.hard;public class TestYieldProtect {public static void main(String[] args) {Yield1 y1 new Yield1();y1.setName("A");Yield2 y2 new Yield2();y2.setName("B");//y1.start();//y2.start();Daemon1…

升级ADT22.6后,Android模拟器无法创建

这 两天,在社区里看到有小伙伴们反应,自己在Eclipse下无法创建Android模拟器的问题。起初,自己也没太在意,我一直使用的是 Genymotion模拟器。然后,问题不解决,总有那么一天会让自己碰到的。这不&#xff0…

1052. 卖个萌 (20)

1052. 卖个萌 (20) 时间限制400 ms内存限制65536 kB代码长度限制8000 B判题程序Standard作者CHEN, Yue萌萌哒表情符号通常由“手”、“眼”、“口”三个主要部分组成。简单起见,我们假设一个表情符号是按下列格式输出的: [左手]([左眼][口][右眼])[右手]…

原来js的parseInt函数还可以这样用

QQpc端登录账号还可以这样玩!!! 图片上来。 wow,我惊呆了。 居然可以登录进出?! 都知道,登录会验证账号是整数,文本框输入的是字符串,会把字符串转成整数, 而…

一步步学习SPD2010--词汇表

association关联:两个ECTs外部内容类型间的关系。 BCS业务连接服务:见Business Connectivity Service(BCS) BDC业务数据连接:见Business Data Connectivity(BDC) breadcrumb面包屑导航: 一系列链接&#xf…

1035. 插入与归并(25)

1035. 插入与归并(25) 时间限制200 ms内存限制65536 kB代码长度限制8000 B判题程序Standard作者CHEN, Yue根据维基百科的定义: 插入排序是迭代算法,逐一获得输入数据,逐步产生有序的输出序列。每步迭代中,算法从输入序列中取出一元…

自定义泛型集合,接口

自定义泛型集合 package C12_21;public class abstractList {public static void main(String[] args) {stu<String> stus new stu<String>();stus.setS("hello");System.out.println(stus.getS());// 灵活, 可以传入任意数据类型。 将运行错误转变为编…

安装json扩展

json_encode无法使用&#xff0c;要求扩展php>5.2,json>2.1.0 http://syue.com/Software/Web/php/17843.html 改php.ini加extensionjson.so转载于:https://www.cnblogs.com/mucaiweiblog/p/3618599.html

实验1 熟悉实验环境

本操作系统实验的硬件环境是IA-32(x86)架构的PC机&#xff08;就是你现在正在使用的计算机&#xff09;&#xff0c;主要软件环境是Bochs gcc 你最喜欢的编辑器/IDE 你最喜欢的操作系统 Linux 0.11源代码。实验的基本流程是根据实验要求编写应用程序、修改Linux 0.11的源代…

c/s和b/s两种开发模式

CS&#xff08;Client/Server&#xff09;&#xff1a;客户端----服务器结构。 C/S结构在技术上很成熟&#xff0c;它的主要特点是交互性强、具有安全的存取模式、网络通信量低、响应速度快、利于处理大量数据。因为客户端要负责绝大多数的业务逻辑和UI展示&#xff0c;又称为…

前端学习(1032):jquery插件-瀑布流

1网址打开 下载插件 2引入css和js和html 3修改图片