01: // Logger.java
02: // $Id: Logger.java,v 1.6 2003/05/13 17:48:55 ylafon Exp $
03: // (c) COPYRIGHT MIT and INRIA, 1996.
04: // Please first read the full copyright statement in file COPYRIGHT.html
05:
06: package org.w3c.jigsaw.http;
07:
08: /**
09: * The Logger class is the abstract class that loggers must implement.
10: * You can (should be able to) use several loggers at the same time.
11: */
12:
13: abstract public class Logger {
14:
15: /**
16: * Log normally a full handled request.
17: * @param client The client which made the request.
18: * @param request The request that was handled.
19: * @param reply The emitted reply to the client.
20: * @param nbytes The number of bytes sent to this client.
21: * @param duration The time it took to process the request.
22: */
23:
24: abstract public void log(Request request, Reply reply, int nbytes,
25: long duration);
26:
27: /**
28: * Log a message to the log.
29: * @param msg The message to log.
30: */
31:
32: abstract public void log(String msg);
33:
34: /**
35: * Log an error on behalf of some client object in the error log.
36: * @param client The client for which the error occured.
37: * @param msg The error message to log.
38: */
39:
40: abstract public void errlog(Client client, String msg);
41:
42: /**
43: * Log an error on behalf of the server object.
44: * @param msg The message to emit.
45: */
46:
47: abstract public void errlog(String msg);
48:
49: /**
50: * Log a client trace. The client may be in some error state, so all access
51: * to the client parameter should be checked.
52: * @param client The client that wants to emit a trace.
53: * @param trace The trace to log.
54: */
55:
56: abstract public void trace(Client client, String trace);
57:
58: /**
59: * Log a server trace.
60: * @param msg The trace to emit.
61: */
62:
63: abstract public void trace(String msg);
64:
65: /**
66: * Flush any in core logger state back to disk.
67: * Some loggers may use memory cache before writing any data to the disk
68: * this method ensures that there state is saved to stable storage.
69: */
70:
71: abstract public void sync();
72:
73: /**
74: * Shutdown this logger object.
75: * Each server will close the shutdown method of the logger before
76: * shuting itself down.
77: */
78:
79: abstract public void shutdown();
80:
81: /**
82: * Initialize this logger for the provided server.
83: * No call to any methods of the logger will be made before this
84: * logger is initialized for some server.
85: * @param server The server to which this logger should be initialized.
86: */
87:
88: abstract public void initialize(httpd server);
89:
90: /**
91: * Construct a new Logger instance.
92: */
93: public Logger() {
94: }
95: }
|