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    }