Skip to content
Yossi Itigin edited this page Jul 7, 2021 · 5 revisions

Logging

UCS has logging infrastructure. logging is controlled by a single level.

NOTE
By default, a release build limits the log level to 'debug' for better performance.
In order to enable all log levels, use ./contrib/configure-devel (instead of ./contrib/configure-release) to build UCX.

  • fatal - stops the program
  • error - an error which does not stop the program and can be reported back to user.
  • warn - a warning which does not return error to the user.
  • info
  • debug - debugging messages, low volume, about initialization/cleanup.
  • trace - debugging messages, high volume, during runtime, for “special” events.
  • req - details of every send/receive request and tag matching.
  • data - headers of every packet being sent/received.
  • async - async notifications and progress thread.
  • func - function calls and arguments.
  • poll - same as func, but also for functions which do busy-polling.

Rules:

  • UCX_LOG_LEVEL controls the logging level.
  • When log level is selected, it enables all messages with this level or higher.
  • Logging messages can be sent to stdout (default) or to a file by setting UCX_LOG_FILE

Features:

  • It's possible to define maximal log level during compile time, to avoid checks in release mode.
  • It's possible to install custom log message handler.
Clone this wiki locally