001 package railo.runtime.engine; 002 003 import java.io.PrintWriter; 004 import java.util.Map; 005 006 import railo.commons.lang.SystemOut; 007 import railo.runtime.PageContext; 008 009 public class ConsoleExecutionLog extends ExecutionLogSupport { 010 011 private PrintWriter pw; 012 private PageContext pc; 013 014 protected void _init(PageContext pc,Map<String,String> arguments) { 015 this.pc=pc; 016 017 if(pw==null) { 018 // stream type 019 String type=arguments.get("stream-type"); 020 if(type!=null && type.trim().equalsIgnoreCase("error")) 021 pw=new PrintWriter(System.err); 022 else 023 pw=new PrintWriter(System.out); 024 025 } 026 } 027 028 @Override 029 protected void _log(int startPos, int endPos, long startTime, long endTime) { 030 031 long diff=endTime-startTime; 032 SystemOut.print(pw, pc.getId()+":"+pc.getCurrentPageSource().getDisplayPath()+":"+positons(startPos,endPos)+" > "+timeLongToString(diff)); 033 } 034 035 protected void _release() {} 036 037 private static String positons(int startPos, int endPos) { 038 if(startPos==endPos) return startPos+""; 039 return startPos+":"+endPos; 040 } 041 042 }