1 25 26 package org.snipsnap.interceptor.custom; 27 28 import org.radeox.util.logging.Logger; 29 import org.snipsnap.interceptor.InterceptorSupport; 30 import org.snipsnap.interceptor.Invocation; 31 32 public class LogInterceptor extends InterceptorSupport { 33 public Object invoke(Invocation invocation) throws Throwable { 34 Logger.debug(name + ": before " + invocation.getMethod().getName() + " "); 36 print(invocation.getArgs()); 37 Object result = invocation.next(); 38 Logger.debug(name + ": after " + invocation.getMethod().getName()); 40 if (null == result) { 41 System.out.println(); 42 } else { 43 Logger.debug(" = "+result.toString()); 44 } 45 return result; 46 } 47 48 private void print(Object [] args) { 49 System.out.print("["); 50 if (null != args) { 51 for (int i = 0; i < args.length; i++) { 52 Object object = args[i]; 53 if (null == object) { 54 System.out.print("null"); 55 } else { 56 String className = object.getClass().getName(); 57 System.out.print(object.toString()); 58 System.out.print("("); 59 System.out.print(className.substring(className.lastIndexOf(".") + 1) + ")"); 60 } 61 if (i < args.length - 1) { 62 System.out.print(", "); 63 } 64 65 } 66 } 67 System.out.println("]"); 68 return; 69 } 70 } 71 | Popular Tags |