The UHD logging facility
Contents
Application Note Information
AN-001 by Michael Dickens
Overview
This application note describes the UHD logging facility: compile-time options, runtime options, application usage, default values and how all of these interact.
Code
UHD has 3 primary files associated with logging: log.hpp, log.cpp, and UHDLog.cmake. There are secondary logging files providing an interface to C and Python.
Concepts
There are 7 logging levels; the name and number can be used interchangeably for any logging variable.
trace | 0 |
debug | 1 |
info | 2 |
warning | 3 |
error | 4 |
fatal | 5 |
off | 6 |
There are 2 distinct times where logging can be controlled: during compilation per CMake settings, and during runtime via shell environment variables.
CMake Logging Settings
There are 4 CMake variables that control logging: UHD_LOG_MIN_LEVEL
, UHD_LOG_CONSOLE_DISABLE
, UHD_LOG_FILE_LEVEL
, and UHD_LOG_CONSOLE_LEVEL
. Each of these variables can be set independently via the CMake commandline or other methods, and override each's default value. The default values for these variables depend on whether the CMAKE_BUILD_TYPE
is debug or not, as follows:
Variable | non-Debug
|
Debug
|
UHD_LOG_MIN_LEVEL
|
debug (1) | |
UHD_LOG_CONSOLE_DISABLE
|
OFF | |
UHD_LOG_FILE_LEVEL
|
info (2) | trace (0) |
UHD_LOG_CONSOLE_LEVEL
|
info (2) | debug (0) |