`

log4j, 自定义错误,配置发送邮件

    博客分类:
  • Java
阅读更多

 Global logging configuration
log4j.rootLogger=info, stdout,D,MAIL

### 输出到控制台 ###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} [%5p] %c{1}:%l - %m%n

### 输出到日志文件 ###
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = ${catalina.home}/logs/GEWS_MSP.log
log4j.appender.D.Append = true
log4j.appender.D.Threshold = info ## 输出info级别以上的日志
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss,SSS} [%5p] %c{1}:%l - %m%n

### send error through email.
# log4j的邮件发送appender,如果有必要你可以写自己的appender
log4j.appender.MAIL=org.apache.log4j.net.SMTPAppender
#发送邮件的门槛,仅当等于或高于ERROR(比如FATAL)时,邮件才被发送
log4j.appender.MAIL.Threshold=ERROR
#邮件缓冲区大小
log4j.appender.MAIL.BufferSize=1024
#发送邮件的邮箱帐号
log4j.appender.MAIL.From=****@126.com
#SMTP邮件发送服务器地址
log4j.appender.MAIL.SMTPHost=smtp.126.com
#SMTP发送认证的帐号名
log4j.appender.MAIL.SMTPUsername=****@126.com
#SMTP发送认证帐号的密码
log4j.appender.MAIL.SMTPPassword=*****
#是否打印调试信息,如果选true,则会输出和SMTP之间的握手等详细信息
log4j.appender.MAIL.SMTPDebug=true
#邮件主题
log4j.appender.MAIL.Subject=GEWS_SYSTEM_ERROR(192.168.2.39)
#发送到什么邮箱,如果要发送给多个邮箱,则用逗号分隔;
#如果需要bcc给某人,则加入下列行:
#log4j.appender.MAIL.Bcc=ttt@126.com
log4j.appender.MAIL.To=ttt@126.com,ttt@sina.com
log4j.appender.MAIL.layout=com.zjxcsoft.util.MailLayout_seth
log4j.appender.MAIL.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n

 

中文乱码解决:

==================================================================================================
package com.zjxcsoft.util;

import org.apache.log4j.Layout;
import org.apache.log4j.spi.LoggingEvent;

public class MailLayout_seth extends Layout{
   StringBuffer sbuf;  
     @Override    
     public String getContentType()   
     {     
         return "text/html;charset=utf-8";  
     }  
     public MailLayout_seth() {  
         sbuf = new StringBuffer(128);  
     }  
     @Override 
     public String format(LoggingEvent event)   
     {  
         sbuf.setLength(0);  
         sbuf.append("错误等级:"+event.getLevel().toString()+"<br>");  
         sbuf.append("错误原因:"+event.getMessage().toString()+"<br>");  
         sbuf.append("错误的类:"+event.getLocationInformation().getClassName()+"<br>");  
         sbuf.append("错误方法:"+event.getLocationInformation().getMethodName()+"<br>");  
         sbuf.append("错误位置:"+event.getLocationInformation().getLineNumber()+"行");  
         return sbuf.toString();  
     }  
     @Override 
     public boolean ignoresThrowable() {  
         // TODO Auto-generated method stub  
         return false;  
     }  
     public void activateOptions() {  
         // TODO Auto-generated method stub             
     }  

}

 

注意事项:

===========================================================================================

邮件方式一般只处理ERROR以上异常。

邮件发送服务器请选择126或者163的,经测试sina的发送服务器很可能导致发送失败


SMTP之间的握手信息:

============================================================================================


EHLO seth-PC
250-mail
250-PIPELINING
250-AUTH LOGIN PLAIN
250-AUTH=LOGIN PLAIN
250-coremail 1Uxr2xKj7kG0xkI17xGrU7I0s8FY2U3Uj8Cz28x1UUUUU7Ic2I0Y2UrUaXObUCa0xDrUUUUj
250 8BITMIME
DEBUG SMTP: Found extension "PIPELINING", arg ""
DEBUG SMTP: Found extension "AUTH", arg "LOGIN PLAIN"
DEBUG SMTP: Found extension "AUTH=LOGIN", arg "PLAIN"
DEBUG SMTP: Found extension "coremail", arg "1Uxr2xKj7kG0xkI17xGrU7I0s8FY2U3Uj8Cz28x1UUUUU7Ic2I0Y2UrUaXObUCa0xDrUUUUj"
DEBUG SMTP: Found extension "8BITMIME", arg ""
DEBUG SMTP: Attempt to authenticate
AUTH LOGIN
334 dXNlcm5hbWU6
c2V0aDM0QDEyNi5jb20=
334 UGFzc3dvcmQ6
Y3gzNDA2NTIw
235 Authentication successful
DEBUG SMTP: use8bit false
MAIL FROM:<22@126.com>
250 Mail OK
RCPT TO:<22@126.com>
250 Mail OK
RCPT TO:<22@sina.com>
250 Mail OK
DEBUG SMTP: Verified Addresses
DEBUG SMTP:   22@126.com
DEBUG SMTP:   22@sina.com
DATA
354 End data with <CR><LF>.<CR><LF>
Message-ID: <31013261.01278665286649.JavaMail.seth@seth-PC>
Date: Fri, 9 Jul 2010 08:48:06 +0000 (GMT)
From: 22@126.com
To: 22@126.com, 22@sina.com
Subject: GEWS_SYSTEM_ERROR(192.168.2.39)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="----=_Part_0_5034054.1278665286559"

------=_Part_0_5034054.1278665286559
Content-Type: text/html;charset=utf-8
Content-Transfer-Encoding: quoted-printable

=E9=94=99=E8=AF=AF=E7=AD=89=E7=BA=A7=EF=BC=9AERROR<br>=E9=94=99=E8=AF=AF=E5=
=8E=9F=E5=9B=A0=EF=BC=9Atestdddddddddddddddddddddddddd<br>=E9=94=99=E8=AF=
=AF=E7=9A=84=E7=B1=BB=EF=BC=9Acom.zjxcsoft.webservice_msp.WebServiceImpl_MS=
P<br>=E9=94=99=E8=AF=AF=E6=96=B9=E6=B3=95=EF=BC=9AWsAccpData_MSP<br>=E9=94=
=99=E8=AF=AF=E4=BD=8D=E7=BD=AE=EF=BC=9A15=E8=A1=8C
------=_Part_0_5034054.1278665286559--

.
250 Mail OK queued as smtp7,DsmowKArmANA4jZMbIQJAA--.3261S2 1278665281
QUIT
2010-07-09 08:48:07,730 [FATAL] WebServiceImpl_MSP:com.zjxcsoft.webservice_msp.WebServiceImpl_MSP.WsAccpData_MSP(WebServiceImpl_MSP.java:16) - test###########################
DEBUG: getProvider() returning javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc]
DEBUG SMTP: useEhlo true, useAuth true
DEBUG SMTP: useEhlo true, useAuth true
DEBUG SMTP: trying to connect to host "smtp.126.com", port 25, isSSL false
220 126.com Anti-spam GT for Coremail System (126com[20090903])
DEBUG SMTP: connected to host "smtp.126.com", port: 25

 

来自:http://blog.sina.com.cn/s/blog_56410d650100jl9b.html

分享到:
评论

相关推荐

    log4j实用配置扩展

    log4j的主要优势在于其灵活性和可扩展性,允许用户通过配置文件自定义日志记录的方式,无需修改应用程序代码。 #### 二、日志记录的目的 在应用程序中记录日志主要有以下三个目的: 1. **监视代码中变量的变化...

    log4j 发送邮件配置实例

    保存配置后,当系统出现error级别的日志时,Log4j会自动通过SMTPAppender发送一封包含错误信息的电子邮件到指定的收件人。为了确保配置有效,你可以故意触发一个error,然后检查是否收到了邮件。 通过以上配置,...

    log4j.jar包,和log4j.properties配置文件下载

    Log4j是一个广泛使用的Java日志记录框架,它允许开发者在应用程序中插入日志语句,以便跟踪程序的运行情况、调试错误、监控性能等。这个框架由Apache软件基金会开发,是许多Java项目的首选日志解决方案,因为它具有...

    log4j 发送邮件

    2. **Log4j配置**:要使用Log4j发送邮件,首先需要在项目的配置文件(通常是`log4j.properties`或`log4j.xml`)中添加适当的配置,包括设置SMTP服务器信息、发件人和收件人地址,以及触发发送邮件的日志级别。...

    Log4J_全能配置文件.pdf

    ### Log4J 全能配置文件详解 #### 一、概述 Log4J是一款非常流行的Java日志框架,被广泛应用于各种规模的应用程序中。它提供了灵活的日志记录机制,可以将日志输出到不同的目的地,如控制台、文件、数据库等,并且...

    log4j的详细配置,log4j.xml和log4j.properties,日志输出到文件,邮件,数据库,控制台等

    总之,Log4j通过其灵活的配置,可以满足不同场景下的日志需求,无论是简单地输出到控制台,还是复杂地发送邮件或存入数据库,都能轻松实现。对于开发和运维人员来说,理解和掌握Log4j的配置方法是十分重要的,它能极...

    log4j配置发送邮件案例

    在IT行业中,日志记录是系统监控和故障排查的关键环节,而Log4j作为Java领域广泛应用的日志框架,提供了一种高效...这个"log4j配置发送邮件案例"展示了如何将日志管理和故障响应相结合,提升了系统的可维护性和可靠性。

    log4j(三):配置文件属性解释、级别、布局、参数设置等

    Log4j的核心配置文件通常是`log4j.properties`或`log4j.xml`,它定义了日志输出的行为。其中,关键属性包括: 1. `appender`: 定义日志输出的目标,如控制台、文件、邮件等。每个`appender`有自己的配置,如`layout...

    Log4j 邮件配置

    Log4j 是一个广泛使用的日志记录框架,尤其在Java应用...综上所述,Log4j 的邮件配置是一项实用的功能,能够帮助开发者及时获取错误和警告信息。通过理解并正确配置SMTPAppender,我们可以实现高效的日志管理和监控。

    log4j与web.xml的配置

    2. **Log4j配置文件(log4j.properties或log4j.xml)** - 在Java项目中,通常会有一个log4j配置文件,用于定义日志记录的级别、输出方式和格式。 - 示例配置: ``` log4j.rootLogger=DEBUG, FILE log4j....

    Spring项目中怎么配置log4j

    例如,配置SMTP Appender发送错误邮件: ``` log4j.appender.A1=org.apache.log4j.net.SMTPAppender log4j.appender.A1.To=your-email@example.com log4j.appender.A1.From=no-reply@example.com log4j....

    log4j-1.2.17.jar及配置文件

    《log4j-1.2.17.jar及其配置文件详解》 在IT行业中,日志记录是一项至关重要的任务,它能帮助开发者追踪程序运行状况、定位错误和调试问题。Log4j,作为Apache软件基金会的一个开源项目,是Java平台上广泛使用的...

    log4j jar包 和配置文件

    开发者可以通过在Java项目中引用这个jar,利用Log4j提供的API来实现各种日志记录功能,如控制台输出、文件写入、邮件发送等。 - **jdbc.properties**: 这可能是一个包含数据库连接信息的配置文件。在Java应用中,...

    Log4j+使用方法+配置文件log4j.properties

    本文将详细介绍Log4j的使用方法以及配置文件`log4j.properties`的设置。 1. **Logger** Logger是日志信息的源头,它是Log4j中最基本的类。通过创建Logger实例,你可以为不同的类或模块分配不同的日志级别,如DEBUG...

    log4j_jar包跟教程说明

    - Log4j允许开发者创建自定义的Appender和Layout来满足特定需求,如发送邮件、写入数据库等。 - Appender决定了日志信息的输出位置,而Layout则决定日志的显示格式。 6. **Log4j的最新版本:Log4j 2** - 随着...

    log4j多个简单实例

    除了默认的`FileAppender`,Log4j还提供了多种Appender,如`ConsoleAppender`(输出到控制台)、`SMTPAppender`(发送电子邮件)、`RollingFileAppender`(文件大小达到一定限制后自动滚动)等。根据实际需求,你...

    log4j中文手册.pdf

    在Java项目中,通常会有一个名为log4j.properties或log4j.xml的配置文件,这里可以定义log4j的行为。例如,你可以指定哪些类或包的日志级别,决定哪些信息会被记录;也可以设置appender的具体实现,如FileAppender将...

    log4j测试代码

    例如,可以使用SMTPAppender发送错误日志邮件,或者使用PatternLayout自定义日志输出格式。 总之,Log4j是一个强大的日志框架,通过简单的配置和API使用,可以有效地管理和监控应用程序的日志信息。通过实践这个...

    精通log4j

    1. 自定义Appender和Layout:Log4j允许开发自定义的Appender和Layout,以满足特殊需求,如发送日志邮件、写入特殊格式的文件等。 2. 异步日志:通过AsyncAppender,可以实现日志输出的异步化,提高系统的整体性能。...

    log4j源码 log4j源码

    6. **配置文件**:log4j的配置通常通过log4j.properties或log4j.xml文件进行,这使得在不修改代码的情况下,我们可以轻松地调整日志行为。 在深入学习Log4j源码时,我们可以看到以下几个关键部分: - **Logger类**...

Global site tag (gtag.js) - Google Analytics