Code

Changes between Version 1 and Version 2 of TracLogging


Ignore:
Timestamp:
01/28/11 12:52:13 (3 years ago)
Author:
trac
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • TracLogging

    v1 v2  
    22[[TracGuideToc]] 
    33 
    4 Trac supports logging of system messages using the standard ''logging'' module part of Python 2.3 and newer. 
     4Trac supports logging of system messages using the standard [http://docs.python.org/lib/module-logging.html logging module] that comes with Python. 
    55 
    6 '''Note:''' If you are using a Python version older than 2.3, the Trac logging mechanism will be silently disabled. 
    7  
    8 Logging is configured in the {{{[logging]}}} section in [wiki:TracIni trac.ini]. 
    9  
    10 == Python 2.2 Workaround == 
    11 If you are using Python 2.2, however, note that the logging package from Python 2.3 works perfectly under 2.2 as well; you can just copy the entire {{{logging}}} directory from the Python 2.3 library into the Python 2.2 lib directory. Perhaps not the most elegant solution, but it works. 
    12  
     6Logging is configured in the `[logging]` section in [wiki:TracIni#logging-section trac.ini]. 
    137 
    148== Supported Logging Methods == 
    15  * '''none''' -- Suppress all log messages. 
    16  * '''file''' -- Log messages to a file, specified with the ''log_file'' directive in [wiki:TracIni trac.ini].  
    17  * '''stderr''' -- Output all log entries to console ([wiki:TracStandalone tracd] only). 
    18  * '''syslog''' -- (UNIX) Send messages to local syslogd via named pipe '/dev/log'. 
    19  * '''winlog''' -- (Windows) Use the system's NT eventlog for Trac logging. 
     9 
     10The 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].  
     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. 
    2017 
    2118== Log Levels == 
    22 The level of verbosity of logged messages can be set using the ''log_level'' directive in [wiki:TracIni trac.ini]. The log level defines the minimum level of urgency required for a message to be logged. 
    2319 
    24 The levels are: 
    25  * ''CRITICAL'' -- Log only the most critical, typically fatal, messages. 
    26  * ''ERROR'' -- Request failures, bugs and errors.  
    27  * ''WARN'' -- Warnings, non-interrupting events. 
    28  * ''INFO'' -- Diagnostic information, log information about all requests. 
    29  * ''DEBUG'' -- Development messages, profiling, etc. Not fit for human consumption. 
     20The 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 
     28Note that starting with Trac 0.11.5 you can in addition 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 
     32Starting with Trac 0.10.4 (see [trac:#2844 #2844]), it is possible to set the output format for log entries. This can be done 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/lib/node422.html 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 
     37Note that variables are identified using a dollar sign (`$(...)s`) instead of percent sign (`%(...)s`). 
     38 
     39The default format is: 
     40{{{ 
     41log_format = Trac[$(module)s] $(levelname)s: $(message)s 
     42}}} 
     43 
     44In 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{{{ 
     46log_format = Trac[$(basename)s:$(module)s] $(levelname)s: $(message)s 
     47}}} 
    3048 
    3149----