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="[email protected]" />
<param value="qq.mttang.com" />
<param value="system is error" />
<param value="[email protected]" />
<param value="[email protected]" />
<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.
[email protected]
[email protected]
log4j.appender.MAIL.SMTPPassword=123
[email protected]
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