You are viewing a plain text version of this content. The canonical link for it is here.
Posted to slide-dev@jakarta.apache.org by pn...@apache.org on 2003/02/28 13:50:08 UTC

cvs commit: jakarta-slide/src/webdav/server/org/apache/slide/webdav/filter LogFilter.java

pnever      2003/02/28 04:50:08

  Modified:    src/webdav/server/org/apache/slide/webdav/filter
                        LogFilter.java
  Log:
  Added date-time parameter and changed keys
  
  Revision  Changes    Path
  1.3       +64 -33    jakarta-slide/src/webdav/server/org/apache/slide/webdav/filter/LogFilter.java
  
  Index: LogFilter.java
  ===================================================================
  RCS file: /home/cvs/jakarta-slide/src/webdav/server/org/apache/slide/webdav/filter/LogFilter.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- LogFilter.java	17 Jan 2003 15:28:53 -0000	1.2
  +++ LogFilter.java	28 Feb 2003 12:50:08 -0000	1.3
  @@ -63,11 +63,14 @@
   
   package org.apache.slide.webdav.filter;
   
  -import java.io.File;
  -import java.io.IOException;
   import java.io.BufferedOutputStream;
  +import java.io.File;
   import java.io.FileOutputStream;
  +import java.io.IOException;
   import java.security.Principal;
  +import java.text.DateFormat;
  +import java.text.SimpleDateFormat;
  +import java.util.Date;
   import javax.servlet.Filter;
   import javax.servlet.FilterChain;
   import javax.servlet.FilterConfig;
  @@ -99,6 +102,21 @@
       String outputFilePath = null;
       File outputFile = null;
       BufferedOutputStream fout = null;
  +    DateFormat df;
  +    String dateTimePattern = "dd-MMM-yyyy HH:mm:ss";
  +
  +    // log elements
  +    String thread;
  +    String datetime;
  +    String method;
  +    String uri;
  +    String path;
  +    int status;
  +    String message;
  +    String principal;
  +    String detail;
  +    String contentlength;
  +    
       
       /**
        * Interface implementation
  @@ -111,6 +129,8 @@
       public void init(FilterConfig config) throws ServletException {
           this.config = config;
           this.context = config.getServletContext();
  +        this.df = new SimpleDateFormat( dateTimePattern );
  +        
           // get the init parms
           String p;
           p = config.getInitParameter( "logFormat" );
  @@ -147,13 +167,38 @@
        * @throws   ServletException
        *
        */
  -    public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws IOException, ServletException {
  -        XHttpServletRequestFacade reqFac = new XHttpServletRequestFacade((HttpServletRequest)req);
  -        XHttpServletResponseFacade respFac = new XHttpServletResponseFacade((HttpServletResponse)resp);
  +    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
  +        XHttpServletRequestFacade req = new XHttpServletRequestFacade((HttpServletRequest)request);
  +        XHttpServletResponseFacade resp = new XHttpServletResponseFacade((HttpServletResponse)response);
           long b = System.currentTimeMillis();
  -        chain.doFilter( reqFac, respFac );
  +
  +        // incomming
  +        thread = Thread.currentThread().getName();
  +        datetime = df.format( new Date() );
  +        method = req.getMethod();
  +        uri = req.getRequestURI();
  +        path = req.getServletPath();
  +        if( "".equals(path) )
  +            path = "/";
  +        Principal p = req.getUserPrincipal();
  +        principal = (p != null ? p.getName() : "");
  +        contentlength = req.getHeader( "Content-Length" );
  +        if( contentlength == null )
  +            contentlength = "-";
  +        
  +        // next please!
  +        chain.doFilter( req, resp );
  +
  +        // way back
  +        status = resp.getStatus();
  +        message = WebdavStatus.getStatusText(status);
  +        detail = resp.getStatusText();
  +        if( detail == null || "".equals(detail) )
  +            detail = message;
  +        
  +        
           long a = System.currentTimeMillis();
  -        logLine( reqFac, respFac, (a-b) );
  +        logLine( req, resp, (a-b) );
       }
       
       /**
  @@ -167,28 +212,14 @@
        *
        */
       private void logLine( XHttpServletRequestFacade req, XHttpServletResponseFacade resp, long elapsed ) throws IOException {
  -        String thread = Thread.currentThread().getName();
  -        String method = req.getMethod();
  -        String uri = req.getRequestURI();
  -        String path = req.getServletPath();
  -        if( "".equals(path) )
  -            path = "/";
  -        int status = resp.getStatus();
  -        String message = WebdavStatus.getStatusText(status);
  -        Principal p = req.getUserPrincipal();
  -        String principal = (p != null ? p.getName() : "");
  -        String detail = resp.getStatusText();
  -        if( detail == null || "".equals(detail) )
  -            detail = message;
  -        String reqCl = req.getHeader( "Content-Length" );
  -        if( reqCl == null )
  -            reqCl = "-";
           
           StringBuffer b = new StringBuffer( logFormat );
           int i;
  -        i = b.toString().indexOf("%t");
  +        i = b.toString().indexOf("%T");
           if( i >= 0 ) b.replace( i, i+2, thread );
  -        i = b.toString().indexOf("%p");
  +        i = b.toString().indexOf("%t");
  +        if( i >= 0 ) b.replace( i, i+2, datetime );
  +        i = b.toString().indexOf("%P");
           if( i >= 0 ) b.replace( i, i+2, principal );
           i = b.toString().indexOf("%m");
           if( i >= 0 ) b.replace( i, i+2, method );
  @@ -196,16 +227,16 @@
           if( i >= 0 ) b.replace( i, i+2, String.valueOf(status) );
           i = b.toString().indexOf("%l");
           if( i >= 0 ) b.replace( i, i+2, message );
  -        i = b.toString().indexOf("%k");
  +        i = b.toString().indexOf("%L");
           if( i >= 0 ) b.replace( i, i+2, detail );
           i = b.toString().indexOf("%i");
           if( i >= 0 ) b.replace( i, i+2, String.valueOf(elapsed)+" ms" );
  -        i = b.toString().indexOf("%u");
  +        i = b.toString().indexOf("%p");
           if( i >= 0 ) b.replace( i, i+2, path );
  -        i = b.toString().indexOf("%v");
  +        i = b.toString().indexOf("%u");
           if( i >= 0 ) b.replace( i, i+2, uri );
           i = b.toString().indexOf("%x");
  -        if( i >= 0 ) b.replace( i, i+2, reqCl );
  +        if( i >= 0 ) b.replace( i, i+2, contentlength );
           
           if( outputToConsole )
               System.out.println( b.toString() );
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: slide-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: slide-dev-help@jakarta.apache.org