org.w3c.jigsaw.http
Class CommonLogger

java.lang.Object
  |
  +--org.w3c.jigsaw.http.Logger
        |
        +--org.w3c.jigsaw.http.CommonLogger
Direct Known Subclasses:
ExtendedCommonLogger

public class CommonLogger
extends Logger
implements PropertyMonitoring

The CommonLogger class implements the abstract Logger class. The resulting log will conform to the common log format).

See Also:
Logger

Field Summary
protected  byte[] buffer
           
protected  int bufptr
           
protected  int bufsize
           
static java.lang.String BUFSIZE_P
          Name of the property indicating the buffer size for the logger.
protected  java.io.RandomAccessFile errlog
           
static java.lang.String ERRLOGNAME_P
          Name of the property indicating the error log file.
protected  java.io.RandomAccessFile log
           
protected  java.lang.String logdir
           
static java.lang.String LOGNAME_P
          Name of the property indicating the log file.
protected  ObservableProperties props
           
protected  httpd server
           
protected  java.io.RandomAccessFile trace
           
static java.lang.String TRACELOGNAME_P
          Name of the property indicating the server trace file.
 
Method Summary
protected  void appendLogBuffer(java.lang.String msg)
           
 void errlog(Client client, java.lang.String msg)
           
 void errlog(java.lang.String msg)
           
protected  void errlogmsg(java.lang.String msg)
           
protected  java.lang.String getFilename(java.lang.String propname, java.lang.String def)
          Get the name for the file indicated by the provided property.
 void initialize(httpd server)
          Initialize this logger for the given server.
 void log(Request request, Reply reply, int nbytes, long duration)
          Log the given HTTP transaction.
 void log(java.lang.String msg)
           
protected  void logmsg(java.lang.String msg)
           
protected  void openErrorLogFile()
          Open this logger error log file.
protected  void openLogFile()
          Open this logger log file.
protected  void openTraceFile()
          Open this logger trace file.
protected  void output(java.io.RandomAccessFile f, java.lang.String msg)
          Output the given message to the given RandomAccessFile.
 boolean propertyChanged(java.lang.String name)
          Property monitoring for the logger.
 void shutdown()
          Shutdown this logger.
 void sync()
          Save all pending data to stable storage.
 void trace(Client client, java.lang.String msg)
           
 void trace(java.lang.String msg)
           
protected  void tracemsg(java.lang.String msg)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

LOGNAME_P

public static final java.lang.String LOGNAME_P
Name of the property indicating the log file. This property indicates the name of the log file to use.

This property defaults to the log file in the server log directory.


ERRLOGNAME_P

public static final java.lang.String ERRLOGNAME_P
Name of the property indicating the error log file. This property indicates the name of the error log file to use.

This property defaults to the errlog file in the server log directory.


TRACELOGNAME_P

public static final java.lang.String TRACELOGNAME_P
Name of the property indicating the server trace file. This property indicates the name of the trace file to use.

This property defaults to the trace file in the server log directory.


BUFSIZE_P

public static final java.lang.String BUFSIZE_P
Name of the property indicating the buffer size for the logger. This buffer size applies only the the log file, not to the error log file, or the trace log file. It can be set to zero if you want no buffering.

This property default to 4096.


log

protected java.io.RandomAccessFile log

errlog

protected java.io.RandomAccessFile errlog

trace

protected java.io.RandomAccessFile trace

server

protected httpd server

props

protected ObservableProperties props

logdir

protected java.lang.String logdir

bufsize

protected int bufsize

bufptr

protected int bufptr

buffer

protected byte[] buffer
Method Detail

propertyChanged

public boolean propertyChanged(java.lang.String name)
Property monitoring for the logger. The logger allows you to dynamically (typically through the property setter) change the names of the file to which it logs error, access and traces.
Specified by:
propertyChanged in interface PropertyMonitoring
Parameters:
name - The name of the property that has changed.
Returns:
A boolean, true if the change was made, false otherwise.

output

protected void output(java.io.RandomAccessFile f,
                      java.lang.String msg)
               throws java.io.IOException
Output the given message to the given RandomAccessFile. This method makes its best effort to avoid one byte writes (which you get when writing the string as a whole). It first copies the string bytes into a private byte array, and than, write them all at once.
Parameters:
f - The RandomAccessFile to write to, which should be one of log, errlog or trace.
msg - The message to be written.
Throws:
java.io.IOException - If writing to the output failed.

appendLogBuffer

protected void appendLogBuffer(java.lang.String msg)
                        throws java.io.IOException

logmsg

protected void logmsg(java.lang.String msg)

errlogmsg

protected void errlogmsg(java.lang.String msg)

tracemsg

protected void tracemsg(java.lang.String msg)

log

public void log(Request request,
                Reply reply,
                int nbytes,
                long duration)
Log the given HTTP transaction. This is shamelessly slow.
Overrides:
log in class Logger

log

public void log(java.lang.String msg)
Overrides:
log in class Logger

errlog

public void errlog(Client client,
                   java.lang.String msg)
Overrides:
errlog in class Logger

errlog

public void errlog(java.lang.String msg)
Overrides:
errlog in class Logger

trace

public void trace(Client client,
                  java.lang.String msg)
Overrides:
trace in class Logger

trace

public void trace(java.lang.String msg)
Overrides:
trace in class Logger

getFilename

protected java.lang.String getFilename(java.lang.String propname,
                                       java.lang.String def)
Get the name for the file indicated by the provided property. This method first looks for a property value. If none is found, it than constructs a default filename from the server root, by using the provided default name.

This method shall either succeed in getting a filename, or throw a runtime exception.

Parameters:
propname - The name of the property.
def - The default file name to use.
Throws:
HTTPRuntimeException - If no file name could be deduced from the provided set of properties.

openLogFile

protected void openLogFile()
Open this logger log file.

openErrorLogFile

protected void openErrorLogFile()
Open this logger error log file.

openTraceFile

protected void openTraceFile()
Open this logger trace file.

sync

public void sync()
Save all pending data to stable storage.
Overrides:
sync in class Logger

shutdown

public void shutdown()
Shutdown this logger.
Overrides:
shutdown in class Logger

initialize

public void initialize(httpd server)
Initialize this logger for the given server. This method gets the server properties describe above to initialize its various log files.
Parameters:
server - The server to which thiss logger should initialize.
Overrides:
initialize in class Logger