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    }