# Debug Support

Rsyslog provides a number of debug aids. Some of them are activated by adding the --enable-rtinst ./configure option ("rtinst" means runtime instrumentation). Turning debugging on obviously costs some performance (in some cases considerable).

This is document is just being created and thus terse.

Signals supported

SIGUSR1 - turns debug messages on and off (expect this signal to go away over time)

SIGUSR2 - outputs debug information (including active threads and a call stack) for the state when SIGUSR2 was received. This is a one-time output. Can be sent as often as the user likes.

Environment Variables

There are two environment variables that set several debug settings. The "RSYSLOG_DEBUGLOG" (sample: RSYSLOG_DEBUGLOG="/path/to/debuglog/") writes (allmost) all debug message to the specified log file in addition to stdout. Some system messages (e.g. segfault or abort message) are not written to the file as we can not capture them. Runtime debug support is controlled by "RSYSLOG_DEBUG". It contains an option string with the following options possible (all are case insensitive):

- LogFuncFlow - print out the logical flow of functions (entering and exiting them)
- FileTrace - specifies which files to trace LogFuncFlow. If not set (the default), a LogFuncFlow trace is provided for all files. Set to limit it to the files specified. FileTrace may be specified multiple times, one file each (e.g. export RSYSLOG_DEBUG="LogFuncFlow FileTrace=vm.c FileTrace=expr.c"
- PrintFuncDB - print the content of the debug function database whenever debug information is printed (e.g. abort case)!
- PrintAllDebugInfoOnExit - print all debug information immediately before rsyslogd exits (currently not implemented!)
- PrintMutexAction - print mutex action as it happens. Useful for finding deadlocks and such.
- NoLogTimeStamp - do not prefix log lines with a timestamp (default is to do that).
- NoStdOut - do not emit debug messages to stdout. If RSYSLOG_DEBUGLOG is not set, this means no messages will be displayed at all.
- help - display a very short list of commands - hopefully a life saver if you can't access the documentation...

[manual index] [rsyslog site]

This documentation is part of the rsyslog project.
Copyright © 2008 by Rainer Gerhards and Adiscon. Released under the GNU GPL version 3 or higher.