Annotation of java/classes/org/w3c/jigsaw/http/ExtendedCommonLogger.java, revision 1.3.4.4
1.1 ylafon 1: // ExtendedCommonLogger.java
1.3.4.4 ! ylafon 2: // $Id: ExtendedCommonLogger.java,v 1.9 2000/12/04 15:05:04 ylafon Exp $
1.1 ylafon 3: // (c) COPYRIGHT MIT and INRIA, 1999.
4: // Please first read the full copyright statement in file COPYRIGHT.html
5:
6: package org.w3c.jigsaw.http ;
7:
8: import java.util.Date ;
9:
10: import org.w3c.jigsaw.auth.AuthFilter;
11:
12: /**
13: * The ExtendedCommonLogger class implements the abstract Logger class.
14: * It just rotates the log every month and use the extended log format
15: * @see org.w3c.jigsaw.http.CommonLogger
16: */
17:
18: public class ExtendedCommonLogger extends CommonLogger {
19:
20: private byte msgbuf[] = null ;
21:
22: /**
23: * Log the given HTTP transaction.
24: * This is shamelessly slow.
25: */
26:
27: public void log (Request request, Reply reply, int nbytes, long duration) {
28: Client client = request.getClient() ;
29: String entry = null ;
30: long date = reply.getDate();
31: // Compute the time zone offset, first call only.
32: if ( tz == -1 ) {
33: tz = new Date().getTimezoneOffset();
34: }
1.3.4.2 ylafon 35: Date now;
36: if (date < 0 ) {
37: now = new Date((new Date()).getTime() + tz*60*1000);
38: } else {
39: now = new Date(date + (tz*60*1000));
40: }
1.1 ylafon 41:
1.3.4.1 ylafon 42: if (rotateLevel > 0) {
43: checkLogFile(now);
1.1 ylafon 44: }
1.3.4.1 ylafon 45:
1.1 ylafon 46: String user = (String) request.getState(AuthFilter.STATE_AUTHUSER);
1.3.4.4 ! ylafon 47: String requrl = (String) request.getState(Request.ORIG_URL_STATE);
! 48: if (requrl == null) {
! 49: requrl = request.getURL().toExternalForm();
! 50: }
1.1 ylafon 51: entry = client.getInetAddress().getHostAddress()
52: + " " + "-" // user name
53: + " " + ((user == null ) ? "-" : user) // auth user name
54: + ((now.getDate() < 10) ? " [0" : " [")
55: + (now.getDate() // current date
56: + "/" + monthnames[now.getMonth()]
57: + "/" + (now.getYear() + 1900)
58: + ((now.getHours() < 10)
59: ? (":0" + now.getHours())
60: : (":" + now.getHours()))
61: + ((now.getMinutes() < 10)
62: ? (":0" + now.getMinutes())
63: : (":" + now.getMinutes()))
64: + ((now.getSeconds() < 10)
65: ? (":0" + now.getSeconds())
66: : (":" + now.getSeconds()))
1.3.4.3 ylafon 67: + " +0000]") // we always use GMT because of some old jdk...
1.1 ylafon 68: + " \"" + request.getMethod() // request line
1.3.4.4 ! ylafon 69: + " " + requrl
1.1 ylafon 70: + " " + request.getVersion()
71: + "\" " + reply.getStatus() // reply status
1.3.4.3 ylafon 72: + " " + ((nbytes < 0 ) ? "-" :
73: Integer.toString(nbytes)) // # of emited bytes
1.2 ylafon 74: + " \"" +
1.3 ylafon 75: ((request.getReferer() == null) ? "-" : request.getReferer())
1.2 ylafon 76: + "\"" // the referer (ext log)
77: + " \"" +
1.3 ylafon 78: ((request.getUserAgent() == null) ? "-" : request.getUserAgent())
1.2 ylafon 79: + "\"" // User agent
1.1 ylafon 80: + "\n" ;
81: logmsg (entry) ;
82: }
1.3.4.4 ! ylafon 83:
1.1 ylafon 84: /**
85: * Construct a new Logger instance.
86: */
1.3.4.4 ! ylafon 87:
1.1 ylafon 88: ExtendedCommonLogger () {
89: this.msgbuf = new byte[128] ;
90: }
1.3.4.4 ! ylafon 91:
1.1 ylafon 92: }
Webmaster