1 | = Trac Logging |
---|
2 | [[TracGuideToc]] |
---|
3 | |
---|
4 | Trac supports logging of system messages using the standard [http://docs.python.org/library/logging.html logging module] that comes with Python. |
---|
5 | |
---|
6 | Logging is configured in the `[logging]` section in [wiki:TracIni#logging-section trac.ini]. |
---|
7 | |
---|
8 | == Supported Logging Methods |
---|
9 | |
---|
10 | The log method is set using the `log_type` option in [wiki:TracIni#logging-section trac.ini], which takes any of the following values: |
---|
11 | |
---|
12 | '''none'':: Suppress all log messages. |
---|
13 | '''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. |
---|
14 | '''stderr''':: Output all log entries to console ([wiki:TracStandalone tracd] only). |
---|
15 | '''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. |
---|
16 | '''eventlog''':: (Windows) Use the system's NT Event Log for Trac logging. |
---|
17 | |
---|
18 | == Log Levels |
---|
19 | |
---|
20 | 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: |
---|
21 | |
---|
22 | '''CRITICAL''':: Log only the most critical (typically fatal) errors. |
---|
23 | '''ERROR''':: Log failures, bugs and errors. |
---|
24 | '''WARN''':: Log warnings, non-interrupting events. |
---|
25 | '''INFO''':: Diagnostic information, log information about all processing. |
---|
26 | '''DEBUG''':: Trace messages, profiling, etc. |
---|
27 | |
---|
28 | 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. |
---|
29 | |
---|
30 | == Log Format |
---|
31 | |
---|
32 | The output format for log entries can be specified through the `log_format` option in [wiki:TracIni#logging-section 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: |
---|
33 | '''$(basename)s''':: The last path component of the current environment. |
---|
34 | '''$(path)s''':: The absolute path for the current environment. |
---|
35 | '''$(project)s''':: The originating project's name. |
---|
36 | |
---|
37 | Note that variables are identified using a dollar sign (`$(...)s`) instead of percent sign (`%(...)s`). |
---|
38 | |
---|
39 | The default format is: |
---|
40 | {{{#!ini |
---|
41 | log_format = Trac[$(module)s] $(levelname)s: $(message)s |
---|
42 | }}} |
---|
43 | |
---|
44 | 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: |
---|
45 | {{{#!ini |
---|
46 | log_format = Trac[$(basename)s:$(module)s] $(levelname)s: $(message)s |
---|
47 | }}} |
---|
48 | |
---|
49 | ---- |
---|
50 | See also: TracIni, TracGuide, TracEnvironment |
---|