`
cao_jian
  • 浏览: 7869 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

log4j发送格式化邮件以及解决邮件乱码

阅读更多
系统上线运行中如果发生了异常错误可以通过如下log4j配置发送邮件到指定的邮箱,来分析了解系统异常运行情况信息来定位问题。

package com.mttang.js.auth.util;

import java.net.Inet6Address;
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.util.Enumeration;

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

/**
 * 系统发生错误发送通知邮件格式化(解决邮件内容乱码以及格式化)
 * @author caojian
 *
 */
public class Log4jMailLayout extends PatternLayout{  
      

    StringBuffer sbuf = new StringBuffer(BUF_SIZE);  
    @Override    
    public String getContentType()   
    {     
        return "text/html;charset=UTF-8";  //处理乱码
    }  
 
    @Override  
    public String format(LoggingEvent event)   
    {  
        if(sbuf.capacity() > MAX_CAPACITY) {
              sbuf = new StringBuffer(BUF_SIZE);
        } else {
              sbuf.setLength(0);
        }
        sbuf.append("<pre>服务器域名 : www.baoshengdianzi.com  ");
        sbuf.append("<pre>服务器IP地址 : "+getLocalIP()+"<BR/>");
        sbuf.append("错误等级 : "+event.getLevel().toString()+"<BR/>");  
        sbuf.append("错误所在类 : "+event.getLocationInformation().getClassName()+"<BR/>");  
        sbuf.append("错误方法所在 : "+event.getLocationInformation().getMethodName()+"<BR/>");  
        sbuf.append("错误行 : "+event.getLocationInformation().getLineNumber()+"<BR/>"); 
        sbuf.append("错误原因 : <pre>"+super.format(event)+"<pre><BR/></pre>");  
        
        return sbuf.toString();  
    }  

    /**
     * 获取本机IP
     * @return
     */
    private static String getLocalIP() 
    {
          
        String ip = " http://www.baoshengdianzi.com ";
           try 
           {
               Enumeration<NetworkInterface> networkInterfaces =  NetworkInterface.getNetworkInterfaces();
               while (networkInterfaces.hasMoreElements()) 
               {
                   NetworkInterface ni = networkInterfaces.nextElement();
                   if(ni.getName().equals("eth0"))
                   {
                       Enumeration<InetAddress> inetAddresses = ni.getInetAddresses();
                       while (inetAddresses.hasMoreElements()) 
                       {
                           InetAddress ia = inetAddresses.nextElement();
                           if (ia instanceof Inet6Address){
                               continue; 
                           }
                           ip = ia.getHostAddress();
                       }
                       break;
                   }
               }
           } 
           catch (SocketException e) 
           {
              ip = e.getMessage();
           }
           
           return ip;
    }

}  





log4j发送邮件XML文件配置
<appender class="org.apache.log4j.net.SMTPAppender">
    <param value="FATAL" />
    <param value="512" /><!-- Unit K -->
    <param value="system@mttang.com" />
    <param value="qq.mttang.com" />
    <param value="system is error" />
    <param value="caojian@mttang.com" />
    <param value="system@mttang.com" />
    <param value="123" />
    <layout class="com.mttang.js.auth.util.Log4jMailLayout"/>
</appender>

log4j发送邮件属性文件(properties)配置
log4j.appender.MAIL=org.apache.log4j.net.SMTPAppender
log4j.appender.MAIL.Threshold=ERROR
log4j.appender.MAIL.BufferSize=512
log4j.appender.MAIL.SMTPHost=aaa.mttang.com
log4j.appender.MAIL.Subject=http://www.baoshengdianzi.com  is error.
log4j.appender.MAIL.From=bbbb@mttang.com
log4j.appender.MAIL.SMTPUsername=aaaa@mttang.com
log4j.appender.MAIL.SMTPPassword=123
log4j.appender.MAIL.To=ccc@mttang.com
log4j.appender.MAIL.layout=com.mttang.js.auth.util.Log4jMailLayout
log4j.appender.MAIL.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} [%c]-[%p] %m%n

金属膜电阻供应商 http://wwww.baoshengdianzi.com
分享到:
评论

相关推荐

    pino-syslog:pin用于将pino日志重新格式化为标准syslog格式的传输方式

    pino-syslog从stdin接收pino日志,并将其转换为或 (syslog)格式的消息,并将其写入stdout 。 默认输出格式为RFC5424。 此传输不会将消息发送到远程甚至本地syslog兼容服务器。 它仅将日志重新格式化为与syslog...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part4

    第19章 使用log4j进行日志操作 564 19.1 log4j介绍 564 19.1.1 logger组件 564 19.1.2 appender组件 566 19.1.3 layout组件 567 19.2 使用log4j 568 19.3 log4j使用实例 572 19.4 ndc和mdc 585 19.5 小结 ...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part2

    第19章 使用log4j进行日志操作 564 19.1 log4j介绍 564 19.1.1 logger组件 564 19.1.2 appender组件 566 19.1.3 layout组件 567 19.2 使用log4j 568 19.3 log4j使用实例 572 19.4 ndc和mdc 585 19.5 小结 ...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part5

    第19章 使用log4j进行日志操作 564 19.1 log4j介绍 564 19.1.1 logger组件 564 19.1.2 appender组件 566 19.1.3 layout组件 567 19.2 使用log4j 568 19.3 log4j使用实例 572 19.4 ndc和mdc 585 19.5 小结 ...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part3

    第19章 使用log4j进行日志操作 564 19.1 log4j介绍 564 19.1.1 logger组件 564 19.1.2 appender组件 566 19.1.3 layout组件 567 19.2 使用log4j 568 19.3 log4j使用实例 572 19.4 ndc和mdc 585 19.5 小结 ...

    《程序天下:J2EE整合详解与典型案例》光盘源码

    5.5.1 有关格式化的快捷键 5.5.2 有关调试的快捷键 5.5.3 有关重构的快捷键 5.6 小结 第六章 Log4j使用指南 6.1 Log4j介绍 6.1.1 Log4j历史 6.1.2 Log4j组成 6.2 建立Log4j的开发环境 6.2.1 下载Log4j 6.2.2 配置Log...

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (2)

    5.5.1 有关格式化的快捷键 5.5.2 有关调试的快捷键 5.5.3 有关重构的快捷键 5.6 小结 第六章 Log4j使用指南 6.1 Log4j介绍 6.1.1 Log4j历史 6.1.2 Log4j组成 6.2 建立Log4j的开发环境 6.2.1 下载Log4j 6.2.2 配置Log...

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (1)

    5.5.1 有关格式化的快捷键 5.5.2 有关调试的快捷键 5.5.3 有关重构的快捷键 5.6 小结 第六章 Log4j使用指南 6.1 Log4j介绍 6.1.1 Log4j历史 6.1.2 Log4j组成 6.2 建立Log4j的开发环境 6.2.1 下载Log4j 6.2.2 配置Log...

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (3)

    5.5.1 有关格式化的快捷键 5.5.2 有关调试的快捷键 5.5.3 有关重构的快捷键 5.6 小结 第六章 Log4j使用指南 6.1 Log4j介绍 6.1.1 Log4j历史 6.1.2 Log4j组成 6.2 建立Log4j的开发环境 6.2.1 下载Log4j 6.2.2 配置Log...

    jpivot学习总结.doc

    formatter 该属性定义了 Member.getCaption() 方法返回的动作值,这里需要是一个实现了 mondrian.olap.MemberFormatter 接口的类,用来对 Caption 地值进行格式化。 3.6. Join 对于一个 Hierarchy 来说,有两种...

    bugzilla使用说明

    作为一个产品缺陷的记录及跟踪工具,它能够为你建立一个完善的Bug跟踪体系,包括报告Bug、查询Bug记录并产生报表、处理解决、管理员系统初始化和设置四部分。并具有如下特点: Bugzilla处理流程: 常用的一些操作...

    修复XP+Win7双系统启动引导

    1、格式化或GHOST活动分区(C盘)重装系统后添加修复其它分区上的Vista/2008/Win7启动菜单 2、在Vista/2008/Win7上新装2000/xp/2003后添加修复原Vista/2008/Win7启动菜单 简化出先vista/2008/win7后装2000/xp/2003多...

    BCDautofix( NT6 启动菜单自动修复工具) v1.0.5 绿色版.zip

    1、格式化或GHOST活动分区(C盘)重装系统后添加修复其它分区上的Vista/2008/Win7启动菜单 2、在Vista/2008/Win7上新装2000/xp/2003后添加修复原Vista/2008/Win7启动菜单 简化出先vista/2008/win7后装2000/xp/2003多...

    双系统启动菜单自动修复工具BCDautofix V1.0.3 绿色版.zip

    1、格式化或GHOST活动分区(C盘)重装系统后添加修复其它分区上的Vista/2008/Win7启动菜单 2、在Vista/2008/Win7上新装2000/xp/2003后添加修复原Vista/2008/Win7启动菜单 简化出先vista/2008/win7后装2000/xp/2003多...

    BCDautofix V1.0.3

    1、格式化或GHOST活动分区(C盘)重装系统后添加修复其它分区上的Vista/2008/Win7启动菜单 2、在Vista/2008/Win7上新装2000/xp/2003后添加修复原Vista/2008/Win7启动菜单 简化出先vista/2008/win7后装2000/xp/2003多...

    双系统启动菜单自动建立和修复工具

    1、格式化或GHOST活动分区(C盘)重装系统后添加修复其它分区上的Vista/2008/Win7启动菜单 2、在Vista/2008/Win7上新装2000/xp/2003后添加修复原Vista/2008/Win7启动菜单 简化出先vista/2008/win7后装2000/xp/2003多...

    BCD修复工具

    1、格式化或GHOST活动分区(C盘)重装系统后添加修复其它分区上的Vista/2008/Win7启动菜单 2、在Vista/2008/Win7上新装2000/xp/2003后添加修复原Vista/2008/Win7启动菜单 简化出先vista/2008/win7后装2000/xp/2003多...

    BCDautofix V1.0.2 启动菜单自动修复工具

    1、格式化或GHOST活动分区(C盘)重装系统后添加修复其它分区上的Vista/2008/Win7启动菜单 2、在Vista/2008/Win7上新装2000/xp/2003后添加修复原Vista/2008/Win7启动菜单 简化出先vista/2008/win7后装2000/xp/2003多...

    asp.net知识库

    体验.net2.0的优雅(四):Provider、策略、控制反转和依赖注入 泛型最佳实践 asp.net 2.0下嵌套masterpage页的可视化编辑 C# 2.0与泛型 动态调用对象的属性和方法——性能和灵活性兼备的方法 泛型技巧系列:用泛型...

Global site tag (gtag.js) - Google Analytics