org.w3c.jigsaw.filters
Class LogFilter
java.lang.Object
|
+--org.w3c.tools.resources.AttributeHolder
|
+--org.w3c.tools.resources.Resource
|
+--org.w3c.tools.resources.FramedResource
|
+--org.w3c.tools.resources.ResourceFrame
|
+--org.w3c.tools.resources.ResourceFilter
|
+--org.w3c.jigsaw.filters.LogFilter
- public class LogFilter
- extends org.w3c.tools.resources.ResourceFilter
This filter provides a very flexible logger.
It is not designed as a logger, in order to be plugable only on
a sub-tree of the URL space (a logger would log all site accesses).
It provides as much details as you want, and uses a very simple format:
each log entry (or record is made of several lines having
the folowing format:
variable=value
A record starts with the special url
variable value which
provides the requested URL. The for each header that is to be logged,
a variable is added in the record, prefixed by its scope. The
scope can be either:
- request
- to specify a request header,
- reply
- to specify a reply header,
- server
- to specify global server samples.
As an example, if you configure that filter to log the request's referer
and the reply content length, a sample record will look like:
url=http://www.w3.org/pub/WWW/Jigsaw/
request.referer=http://www.w3.org/pub/WWW
reply.content-length=10
Field Summary |
protected static int |
ATTR_LOGFILE
Attribute index - The log file to use to emit log record. |
protected static int |
ATTR_REPLY_HEADERS
Attribute index - The HTTP reply headers to dump |
protected static int |
ATTR_REQUEST_HEADERS
Attribute index - The HTTP request headers to dump |
static java.lang.String |
DONT_LOG
Name of the state that when set on the request will prevent logging. |
protected java.io.RandomAccessFile |
log
Open log descriptor, to write to the log. |
protected HeaderDescription[] |
repheaders
Compiled index of the reply headers to dump. |
protected HeaderDescription[] |
reqheaders
Compiled index of the request headers to dump. |
Fields inherited from class org.w3c.tools.resources.ResourceFrame |
filterClass,
frameListener,
resource |
Fields inherited from class org.w3c.tools.resources.FramedResource |
ATTR_OID,
attrListener,
debugEvent,
event_disabled,
framesRef,
structListener |
Fields inherited from class org.w3c.tools.resources.Resource |
ATTR_CONTEXT,
ATTR_HELP_URL,
ATTR_IDENTIFIER,
ATTR_LAST_MODIFIED,
ATTR_PARENT,
ATTR_RESOURCE_FRAMES,
ATTR_STORE_ENTRY,
ATTR_URL |
Fields inherited from class org.w3c.tools.resources.AttributeHolder |
attributes,
slowpickle,
values |
Method Summary |
protected HeaderDescription[] |
compileHeaders(HttpMessage kind,
java.lang.String[] headers)
Compile the given set of header names into header indexes. |
java.io.File |
getLogfile()
Get the log file. |
java.lang.String[] |
getReplyHeaders()
Get the list of reply headers to dump. |
java.lang.String[] |
getRequestHeaders()
Get the list of request headers to dump. |
void |
initialize(java.lang.Object[] values)
Initialize the filter. |
protected void |
log(org.w3c.jigsaw.http.Request request,
org.w3c.jigsaw.http.Reply reply)
Log the given request/reply transaction. |
protected void |
openLog()
Open the log stream, and make it available through log . |
org.w3c.tools.resources.ReplyInterface |
outgoingFilter(org.w3c.tools.resources.RequestInterface req,
org.w3c.tools.resources.ReplyInterface rep)
Log the request. |
void |
setValue(int idx,
java.lang.Object value)
Traop setValue calls. |
protected void |
writelog(java.lang.String record)
Write the given string to the log file. |
Methods inherited from class org.w3c.tools.resources.ResourceFilter |
exceptionFilter,
getTargetResource,
ingoingFilter,
ingoingFilter,
lookup,
outgoingFilter,
outputFilter |
Methods inherited from class org.w3c.tools.resources.ResourceFrame |
addFrameEventListener,
attributeChanged,
checkRequest,
eventDisabled,
fireFrameEvent,
frameModified,
getFilters,
getFilters,
getFrameReference,
getResource,
getResourceReference,
getSpaceEntry,
getURLPath,
lookupFilters,
lookupFrames,
perform,
postFrameEvent,
processEvent,
registerResource,
removeFrameEventListener,
unregisterResource,
updateDefaultChildAttributes |
Methods inherited from class org.w3c.tools.resources.FramedResource |
addAttributeChangedListener,
addStructureChangedListener,
collectFramesReference,
delete,
disableEvent,
displayEvent,
enableEvent,
fireAttributeChangeEvent,
fireStructureChangedEvent,
fireStructureChangedEvent,
frameAdded,
frameRemoved,
getClone,
getFrame,
getFrame,
getFrameReference,
getFrameReference,
getFramesReference,
getOid,
markModified,
notifyUnload,
performFrames,
postAttributeChangeEvent,
postEvent,
postStructureChangedEvent,
postStructureChangedEvent,
registerFrame,
registerFrameIfNone,
removeAttributeChangedListener,
removeStructureChangedListener,
unregisterFrame |
Methods inherited from class org.w3c.tools.resources.Resource |
acceptUnload,
checkMultipleLock,
collectFrames,
getContext,
getFrame,
getFrames,
getHelpURL,
getHelpURL,
getIdentifier,
getLastModified,
getParent,
getServer,
getSpace,
getStoreEntry,
getValue,
getValue,
isInitialized,
setContext,
setContext,
setValue,
updateAttributes |
Methods inherited from class org.w3c.tools.resources.AttributeHolder |
definesAttribute,
definesAttribute,
getAttributes,
getBoolean,
getChar,
getClone,
getClone,
getDouble,
getFloat,
getInt,
getLong,
getString,
getValue,
initialize,
lookupAttribute,
pickle,
print,
setBoolean,
setChar,
setDouble,
setFloat,
setInt,
setLong,
setString,
setValue,
unpickle,
unpickle,
unpickle,
unpickleInstance,
unpickleInstance |
Methods inherited from class java.lang.Object |
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
toString,
wait,
wait,
wait |
DONT_LOG
public static final java.lang.String DONT_LOG
- Name of the state that when set on the request will prevent logging.
ATTR_REQUEST_HEADERS
protected static int ATTR_REQUEST_HEADERS
- Attribute index - The HTTP request headers to dump
ATTR_REPLY_HEADERS
protected static int ATTR_REPLY_HEADERS
- Attribute index - The HTTP reply headers to dump
ATTR_LOGFILE
protected static int ATTR_LOGFILE
- Attribute index - The log file to use to emit log record.
reqheaders
protected HeaderDescription[] reqheaders
- Compiled index of the request headers to dump.
repheaders
protected HeaderDescription[] repheaders
- Compiled index of the reply headers to dump.
log
protected java.io.RandomAccessFile log
- Open log descriptor, to write to the log.
LogFilter
public LogFilter()
compileHeaders
protected HeaderDescription[] compileHeaders(HttpMessage kind,
java.lang.String[] headers)
- Compile the given set of header names into header indexes.
- Parameters:
kind
- An instance of the class whose headers are to be dumped.headers
- The name of headers to compile.- Returns:
- An array of header description, which will allow fast fetch
of header values.
writelog
protected void writelog(java.lang.String record)
- Write the given string to the log file.
- Parameters:
record
- The string to write.
openLog
protected void openLog()
- Open the log stream, and make it available through
log
.
If opening the stream failed, an appropriate error message is emitted
and log
remains set to null. If a log
stream was already opened, it is first closed.
getLogfile
public java.io.File getLogfile()
- Get the log file.
- Returns:
- A File instance, or null if not set.
getRequestHeaders
public java.lang.String[] getRequestHeaders()
- Get the list of request headers to dump.
- Returns:
- An array of String containing the name of headers to dump, or
null if undefined.
getReplyHeaders
public java.lang.String[] getReplyHeaders()
- Get the list of reply headers to dump.
- Returns:
- An array of String containing the name of headers to dump,
or null if undefined.
setValue
public void setValue(int idx,
java.lang.Object value)
- Traop setValue calls.
We maintain a compiled version of both the
request-headers
and the reply-headers
attributes, make sure they stay in
sync even when modified.
- Overrides:
- setValue in class org.w3c.tools.resources.ResourceFrame
log
protected void log(org.w3c.jigsaw.http.Request request,
org.w3c.jigsaw.http.Reply reply)
- Log the given request/reply transaction.
Dump a record for the given transaction.
- Parameters:
request
- The request to log.reply
- It's associated reply.
outgoingFilter
public org.w3c.tools.resources.ReplyInterface outgoingFilter(org.w3c.tools.resources.RequestInterface req,
org.w3c.tools.resources.ReplyInterface rep)
throws org.w3c.tools.resources.ProtocolException
- Log the request.
- Parameters:
request
- The request that has been handled.reply
- It's associated reply.- Throws:
- org.w3c.tools.resources.ProtocolException - If processing should be interrupted, because an abnormal situation
occured.
- Overrides:
- outgoingFilter in class org.w3c.tools.resources.ResourceFilter
initialize
public void initialize(java.lang.Object[] values)
- Initialize the filter.
- Overrides:
- initialize in class org.w3c.tools.resources.FramedResource