package sunfa.lx; import java.io.IOException; import java.io.PrintWriter; import java.io.StringWriter; import java.text.SimpleDateFormat; import java.util.Date; import java.util.logging.FileHandler; import java.util.logging.Formatter; import java.util.logging.Level; import java.util.logging.LogRecord; import java.util.logging.Logger; /** * 此类就算是我在极度无聊之时对JAVA包的学习吧。虽然很多人认为java.util.logging这个包很烂。。。但是 * 有的时候我们懒得去导log4j包,作为稀烂的轻量级的日志包,有的时候它或许还有那么点存在的价值。 就像 * 你我他/她们虽然不能为这个世界做啥子贡献,但依然在这个世界上存在着。。。 */ public class MyLoggerUtilDemo1 { public static void main(String[] args) { MyLoggerUtil myLogger = new MyLoggerUtil(MyLoggerUtilDemo1.class.getName(), "c:\\123.log"); myLogger.info("输出日志信息"); // myLogger.info(Level.WARNING,"11大额订单达"); for (int i = 0; i < 5; i++) { myLogger.writeToFile("11:" + i); } //记录异常信息 try { throw new NullPointerException(); } catch (Exception e) { e.printStackTrace(); myLogger.logException(e); } try { throw new IllegalArgumentException("抛出的异常"); } catch (Exception e) { e.printStackTrace(); myLogger.logException(e); } } } class MyLoggerUtil extends Formatter { private Logger log; private String path; private SimpleDateFormat simpleDateFormat = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss"); public MyLoggerUtil(String name, String path) { this.log = Logger.getLogger(name); this.path = path; if (this.path != null && !this.path.equals("")) { try { FileHandler fileHandler = new FileHandler(path); fileHandler.setFormatter(this); log.addHandler(fileHandler); } catch (Exception e) { e.printStackTrace(); } } } public void info(Level newLevel, String msg) { log.setLevel(newLevel); log.info(msg); } public void info(String msg) { log.info(msg); } public void writeToFile(String msg) { log.info(msg); } @Override public String format(LogRecord record) { String s = record.getLevel() + ":" + getDateStr(record.getMillis()) + "\n\t\t" + record.getMessage()+"\n"; if(record.getThrown()!=null){ StackTraceElement[] stack = record.getThrown().getStackTrace(); for (int i = 0; i < stack.length; i++) { s+=stack[i]; } } return s ; } public void logException(Exception e){ StringWriter trace = new StringWriter(); e.printStackTrace(new PrintWriter(trace)); log.info(trace.toString());try { trace.close(); } catch (IOException e1) { e1.printStackTrace(); } } private String getDateStr(long millis) { return simpleDateFormat.format(new Date(millis)); } }
java.util.logging包的学习
猜你喜欢
转载自jqsl2012.iteye.com/blog/1254648
今日推荐
周排行