
Aftershock makes logs of certain events that occur.  This helps with things
like tracking how many visitors you recieve or hunting down bugs in the
Aftershock code.  There are four types of events that Aftershock records:

Access    - these occur when a client makes a request of your server
Error     - when Aftershock encounters an error situation 
Exception - when a programming error occurs
Info      - any non-critical information, such as startup time.

Each of these types has a seperate file and log format.  The file names and
formats are specified in the configuration file.

Log formats determine how the logged events appear in the file.  They are
specified as strings of characters in which certain special tokens are
replaced by the information which they represent.  A token is a string encased
in curly braces ("{" and "}") which has a special meaning.  Some tokens are
only valid for some event types.  Any characters which are not part of a token
are written to the log file unaltered.  

The token types are:

All Events:
{DATE}      - Replaced by the current date, formatted to your locale.
{TIME}      - Replaced by the current time, formatted to your locale.
{NEWLINE}   - Adds a newline character ('\n' in Java) to the log file

Access:
{REMOTEIP}  - Replaced by the IP address of the client
{SELECTOR}  - Replaced by the selector (file name) the client requested
{PROTOCOL}  - Protocol used in the request - either "gopher" or "gopher+"

Error and Info:
{MESSAGE}   - The error or informational message

Exception:
{EXCEPTION} - The exception text
{STACK}     - The stack trace from the exception

For example, when a client access is logged when the default AccessLogFormat
is in use, it will produce output like:

11/11/03 11:37:35 PM - /logos - /127.0.0.1 - gopher

It should be clear that the "11/11/03" is the date, "11:37:35 PM" is the time
"/logos" is the selector, "/127.0.0.1" is the remote IP, and "gopher" is the
client protocol used.

Dates and times are locale-sensitive.  That means that they will be rendered
according to your locale (your country and language).  Someone running 
Aftershock on a machine configured for European use would see dates and
times displayed differently. 


