core/tel/logging.hpp file

Logging and assertion macros.

Namespaces

namespace cubos
Cubos libraries namespace.
namespace cubos::core
Core namespace.
namespace cubos::core::tel
Telemetry module.

Classes

class cubos::core::tel::Logger
Singleton which holds the logging state.
struct cubos::core::tel::Logger::Location
Identifies a location in the code.
struct cubos::core::tel::Logger::Timestamp
A timestamp used to identify when a logging message was written.
struct cubos::core::tel::Logger::Entry
Data created by a call to log.

Functions

void abort()
Aborts the program and prints a pretty stack trace.

Defines

#define CUBOS_TRACE(...)
Used for logging very verbose information.
#define CUBOS_DEBUG(...)
Used for logging information which is useful for debugging but not necessary in release builds.
#define CUBOS_INFO(...)
Used for logging information which is useful in release builds.
#define CUBOS_WARN(...)
Used for logging unexpected events.
#define CUBOS_ERROR(...)
Used for logging recoverable errors.
#define CUBOS_CRITICAL(...)
Used for logging unrecoverable errors.
#define CUBOS_LOG(level, ...)
Used for logging messages.
#define CUBOS_FAIL(...)
Aborts a program, optionally printing a critical error message.
#define CUBOS_UNREACHABLE(...)
Marks a code path as supposedly unreachable. Aborts the program when reached.
#define CUBOS_TODO(...)
Marks a code path as unfinished. Aborts the program when reached.
#define CUBOS_ASSERT(cond, ...)
Asserts that a condition is true, aborting the program if it is not.
#define CUBOS_ASSERT_IMP(cond, cons, ...)
Asserts that an implication is true, aborting the program if it is not.
#define CUBOS_DEBUG_ASSERT(cond, ...)
In debug builds asserts that a condition is true, aborting the program if it is not.

Define documentation

#define CUBOS_TRACE(...)

Used for logging very verbose information.

Parameters
... Format string and arguments.

#define CUBOS_DEBUG(...)

Used for logging information which is useful for debugging but not necessary in release builds.

Parameters
... Format string and arguments.

#define CUBOS_INFO(...)

Used for logging information which is useful in release builds.

Parameters
... Format string and arguments.

#define CUBOS_WARN(...)

Used for logging unexpected events.

Parameters
... Format string and arguments.

#define CUBOS_ERROR(...)

Used for logging recoverable errors.

Parameters
... Format string and arguments.

#define CUBOS_CRITICAL(...)

Used for logging unrecoverable errors.

Parameters
... Format string and arguments.

#define CUBOS_LOG(level, ...)

Used for logging messages.

Parameters
level Log level.
... Format string and arguments.