读书人

logging日记(二) 扩展Handler

发布时间: 2012-10-30 16:13:36 作者: rapoo

logging日志(二) 扩展Handler

?

import java.net.InetAddress;import java.net.UnknownHostException;import java.text.SimpleDateFormat;import java.util.Date;import java.util.logging.Formatter;import java.util.logging.Handler;import java.util.logging.Level;import java.util.logging.LogManager;import java.util.logging.LogRecord;public class TestHandler extends Handler {public TestHandler (){configure();}@Overridepublic void close() throws SecurityException {}@Overridepublic void flush() {}@Overridepublic void publish(LogRecord record) {if (!isLoggable(record)) {return;}record.setMessage(getUserInfo(record.getMessage()));getFormatter().format(record);getUserInfo(record.getMessage());} private void configure() {LogManager manager = LogManager.getLogManager();String cname = getClass().getName();Level lovel = getLevelProperty(manager, cname + ".level", Level.ALL);if (null != lovel) {setLevel(lovel);} UploadFormatter formatter = (UploadFormatter) getFormatterProperty(manager, cname + ".formatter",  new UploadFormatter());if (null != formatter) {setFormatter(formatter);}}     private Level getLevelProperty(LogManager manager, String name, Level defaultValue) {    String val = manager.getProperty(name);    if (val == null) {        return defaultValue;    }    try {        return Level.parse(val.trim());    } catch (Exception ex) {        return defaultValue;    }    }          Formatter getFormatterProperty(LogManager manager, String name, Formatter defaultValue) {String val = manager.getProperty(name);try {if (val != null) {Class clz = ClassLoader.getSystemClassLoader().loadClass(val);return (Formatter) clz.newInstance();}} catch (Exception ex) {// We got one of a variety of exceptions in creating the// class or creating an instance.// Drop through.}// We got an exception. Return the defaultValue.return defaultValue;}    static InetAddress addr = null;static {try {addr = InetAddress.getLocalHost();} catch (UnknownHostException e) {e.printStackTrace();}}public String getUserInfo(String expmsg) {String username = Conf.getInstance().getProperty("username");String datetime = getCurrentDateTime();String localIP = getLocalIP();if (null == username || null == localIP) {return "";}StringBuffer sb = new StringBuffer();sb.append("{");sb.append("username:").append(username);sb.append(",datetime:").append(datetime);sb.append(",localIP:").append(localIP);sb.append(",expmsg:").append(expmsg);sb.append("}");return sb.toString();}public String getLocalIP() {byte[] ipAddr = addr.getAddress();String ipAddrStr = "";for (int i = 0; i < ipAddr.length; i++) {if (i > 0) {ipAddrStr += ".";}ipAddrStr += ipAddr[i] & 0xFF;}return ipAddrStr;}public String getCurrentDateTime() {String dateformat = "yyyy-MM-dd HH:mm:ss";Date date = new Date();SimpleDateFormat dateFormat = new SimpleDateFormat(dateformat);String strDateFolder = dateFormat.format(date);return strDateFolder;}

??

读书人网 >编程

热点推荐