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 startLine, int endLine, long startTime, long endTime) { 030 long diff=endTime-startTime; 031 SystemOut.print(pw, pc.getId()+":"+pc.getCurrentPageSource().getDisplayPath()+":"+lines(startLine,endLine)+" > "+timeLongToString(diff)); 032 } 033 034 protected void _release() {} 035 036 private static String lines(int startLine, int endLine) { 037 if(startLine==endLine) return startLine+""; 038 return startLine+":"+endLine; 039 } 040 041 }