Embedthis Appweb 3.4.0
Home > Users Guide > Configuration Directives > Logging Directives

Quick Nav

See Also

Logging Directives

CustomLog

Description Define the location of the access log and its format.
Synopsis CustomLog path format
Context Default Server
Example CustomLog access.log "%h %l %u %t \"%r\" %>s %b"
Notes

The CustomLog directive configures an access log that Appweb uses to log all successful HTTP requests. The path may be an absolute filename or it may be relative to the ServerRoot.

The format string argument defines how Appweb will record HTTP accesses to the access log. The following log format specifiers are supported:

Format Specifier Description
%% Percent sign
%a Remove IP address
%b Bytes written back to the browser including HTTP headers. If zero bytes, a '-' is written.
%B Bytes written excluding HTTP headers.
%h Remote host
%l Remote log name if supplied
%O Bytes written including headers. If zero bytes, '0' is written.
%r First line of the request
%s Request HTTP status code.
%t Time
%u Remote user name
%{header}i Content of request header called "header"
%>s Response code. Same as %s.

ErrorLog

Description Defines the path of the Appweb error and trace log
Synopsis ErrorLog logSpec
Context Default Server
Example ErrorLog error.log:2
Notes

The ErrorLog directive defines the path to the Appweb error log and controls what is written to the log. A general overview of using log files is discussed in the Adminstration section on Log Files.

The logSpec argument has the following format:

pathName[:level][.maxSize]

The pathName is an absolute or ServerRoot relative path. The level argument defines a logging verbosity level between 0 and 9 with 9 being the most verbose.

The following levels are generally observed:

Level Usage
0 Essential messages, fatal errors and critical warnings
1 Hard errors
2 Configuration setup and soft warnings
3 Useful informational messages
4 Debug information
5-9 Increasing levels of internal Appweb trace useful for debugging

The maxSize argument defines how large the log may grow in MB before it is rotated. When rotated, the old log will be renamed with ".old" appended to the pathName. The default size is 5 MB.

If the LogLevel directive is used, it will override the level specified via the ErrorLog directive for general logging.

Examples

To log trace at the level specified by the LogLevel directive to the file named error.log:

ErrorLog error.log

LogLevel

Description Defines the verbosity of messages to the error log
Synopsis LogLevel errorLevel
Context Default Server
Example LogLevel 2
Notes

The LogLevel directive defines the amount of information logged to the error log. The errorLevel argument must be a digit between 0 and 9 (inclusive) with 9 being the most verbose level.

Normally a level of 2 is best as it will record the Appweb configuration, denied requests and general errors.

LogTrace

Description Control the tracing of HTTP messages
Synopsis LogTrace level SET
Context Default Server
Example LogTrace 3 headers,request,response
Notes

The LogTrace directive controls how HTTP messages are traced to the log file. When tracing is enabled for a HTTP message, the headers and/or body of the message will be written to the log file. Binary messages will be encoded into printable hex characters. The level defines the log level at which tracing will be enabled.

The "SET" option defines what parts of the HTTP message will be traced. SET is a comma separated (without spaces) list of keywords. Valid keywords are: headers, body, request, and response.

For example: to trace the headers and body of requests but not responses, use: "headers,body,request".

The default configuration is to trace at level 3 request and response headers and request bodies.

LogTraceFilter

Description Control the filtering of HTTP message tracing
Synopsis LogTraceFilter size INCLUDE EXCLUDE
Context Default Server
Example LogTraceFilter 4096 "*" "git,jpg,png,ico"
Notes

The LogTraceFilter directive applies a filter criteria to the tracing of HTTP messages. The size option specifies a maximum number of bytes to trace for any message. This is useful to prevent the entire tracing of very large files.

The INCLUDE option specifies a comma separated (without spaces) list of file extensions to trace. Use "*" to specify tracing all request extensions. The EXCLUDE option specifies a comma separated list of file extensions to exclude from tracing. The include option is applied first, then the exclude option.

For example: to trace only html and text files, use an include option of "html,txt". To trace all files except graphics, use include "*" and exclude "gif,jpg,png,ico".

The default configuration is to trace all files, i.e. no filtering.

© Embedthis Software LLC, 2003-2012. All rights reserved. Embedthis, Ejscript and Appweb are trademarks of Embedthis Software LLC.