Skip to content
shamisp edited this page Oct 28, 2014 · 5 revisions

Logging

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

  • 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:

  • UCS_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 UCS_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