Trace Levels

Hierarchical debugging using numeric trace levels.

Levels 0-9

You can use integers 0 through 9 as flavors. These correspond to trace levels, where higher numbers indicate deeper or more verbose tracing.

>>> ictr( 0, address = 'doctest' )( 'Top level trace.' )
TRACE0|  Top level trace.
>>> ictr( 1, address = 'doctest' )( 'Detailed trace.' )
  TRACE1|  Detailed trace.
>>> ictr( 9, address = 'doctest' )( 'Very verbose trace.' )
                  TRACE9|  Very verbose trace.

Filtering by Level

You can control which trace levels are displayed by setting the trace_levels configuration. Messages with a level less than or equal to the configured limit will be displayed.

>>> ictr( 0, address = 'doctest' )( 'Level 0 visible' )
TRACE0|  Level 0 visible
>>> ictr( 1, address = 'doctest' )( 'Level 1 visible' )
  TRACE1|  Level 1 visible
>>> ictr( 2, address = 'doctest' )( 'Level 2 hidden' )

Indentation

By default, the standard printer indents trace messages based on their level to visually represent the hierarchy.

  • Level 0: No indentation

  • Level 1: 2 spaces

  • Level 2: 4 spaces

  • …and so on.