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

 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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值