[[TracGuideToc]]
Trac supports logging of system messages using the standard logging module that comes with Python.
Logging is configured in the [logging]
section in [wiki:TracIni#logging-section trac.ini].
The log method is set using the log_type
option in [wiki:TracIni#logging-section trac.ini], which takes any of the following values:
none*:: Suppress all log messages.
file:: Log messages to a file, specified with the log_file
option in [wiki:TracIni#logging-section trac.ini]. Relative paths in log_file
are resolved relative to the log
directory of the environment.
stderr:: Output all log entries to console ([wiki:TracStandalone tracd] only).
syslog:: (UNIX) Send all log messages to the local syslogd via named pipe /dev/log
. By default, syslog will write them to the file /var/log/messages.
eventlog**:: (Windows) Use the system's NT Event Log for Trac logging.
The verbosity level of logged messages can be set using the log_level
option in [wiki:TracIni#logging-section trac.ini]. The log level defines the minimum level of urgency required for a message to be logged, and those levels are:
CRITICAL:: Log only the most critical (typically fatal) errors.
ERROR:: Log failures, bugs and errors.
WARN:: Log warnings, non-interrupting events.
INFO:: Diagnostic information, log information about all processing.
DEBUG:: Trace messages, profiling, etc.
Additionally, you can enable logging of SQL statements at debug level. This is turned off by default, as it's very verbose. Set [trac] debug_sql = yes
in TracIni to activate.
The output format for log entries can be specified through the log_format
option in [trac.ini]. The format is a string which can contain any of the http://docs.python.org/library/logging.html#logrecord-attributes Python logging Formatter variables. Additonally, the following Trac-specific variables can be used:
$(basename)s:: The last path component of the current environment.
$(path)s:: The absolute path for the current environment.
$(project)s:: The originating project's name.
Note that variables are identified using a dollar sign ($(...)s
) instead of percent sign (%(...)s
).
The default format is:
```#!ini
log_format = Trac[$(module)s] $(levelname)s: $(message)s
In a multi-project environment where all logs are sent to the same place (e.g. `syslog`), it makes sense to add the project name. In this example we use `basename` since that can generally be used to identify a project:
```#!ini
log_format = Trac[$(basename)s:$(module)s] $(levelname)s: $(message)s
See also: TracIni, TracGuide, TracEnvironment