sunlabs.brazil.handler

Class LogHandler

public class LogHandler extends Object implements Handler

Handler for logging information about requests. Wraps another handler, and logs information about each HTTP request to a file.

Request properties:

handler
The name of the handler to wrap. This can either be the token for the class, or the class name itself.
logFile
The name of the file to log the output to. If the file already exists, data is appended to it. If the file is removed, a new one is created. If no name is specified, one is invented that contains the name and port of the server. Unless an absolute path is specified, the log file is placed in the current directory.
flush
The number of lines of logging output that may be buffered in memory before being written out to the log file. default to 25.
format
The format of the output string. Embedded strings of the form "%X" are replaced, based on the following values for "X":
  • %
    A single "%"
  • b
    Bytes written to the client for this request.
  • d
    Time to service this request (ms).
  • i
    Client ip address.
  • m
    Request method (GET, POST, etc)
  • M
    Memory utilization (%).
  • q
    query string (if any)
  • r
    Requests used for this connection.
  • s
    HTTP result code.
  • t
    TimeStamp (ms since epoch).
  • T
    Number of active threads.
  • u
    URL for this request.
  • v
    HTTP protocol version (10 or 11).
Defaults to "%u;%t:%d:%b".
props
If specified This string is tacked onto the end of the "format" string. Entries in the Request Properties may be included using ${...} substitutions.
headers
If specified This string is tacked onto the end of the "props" string. Entries in the HTTPrequest headers may be included using ${...} substitutions.
title
if present, this is output as the first line of the file

See the {@link ChainSawHandler} for generating standard format log files.

Version: @(#)LogHandler.java 2.2

Author: Stephen Uhler

Field Summary
Filefile
intflush
Stringformat
Handlerhandler
Stringheaders
Stringprops
Stringtitle
Method Summary
booleaninit(Server server, String prefix)
booleanrespond(Request request)
Dispatch the request to the handler.
static Stringsubst(Request request, String format, long duration)
Format a string.

Field Detail

file

public File file

flush

public int flush

format

public String format

handler

public Handler handler

headers

public String headers

props

public String props

title

public String title

Method Detail

init

public boolean init(Server server, String prefix)

respond

public boolean respond(Request request)
Dispatch the request to the handler. Log information if dispatched handler returns true.

subst

public static String subst(Request request, String format, long duration)
Format a string. Replace %X constructs.