KM3NeT CLB
2.0
KM3NeT CLB v2 Embedded Software
|
Implements a generic logger facility. More...
Go to the source code of this file.
Data Structures | |
struct | LogModInfo |
Module info structure. More... | |
Macros | |
#define | LOG_MODE LOG_MODE_INFO |
Set the compile time supported log modes. More... | |
#define | LOG_NO_NONE 0x0 |
#define | LOG_LEVEL_DEFAULT logLevelInfo |
The default logging level. | |
#define | LOG_DEF_LVL(NAME, LEVEL) static LogModInfo _logModInfo = { .name = STR(NAME), .level = LEVEL }; |
Define a logger for a module. More... | |
#define | LOG_DEF(NAME,...) LOG_DEF_LVL(NAME, LOG_LEVEL_DEFAULT) |
Define a logger for a module. More... | |
#define | logTrace(MSG,...) |
#define | logDebug(MSG,...) |
#define | logInfo(MSG,...) _logWrite(&_logModInfo, logLevelInfo, MSG, ## __VA_ARGS__) |
Write a log message with formatting on info level. More... | |
#define | logWarn(MSG,...) _logWrite(&_logModInfo, logLevelWarn, MSG, ## __VA_ARGS__) |
Format a log message with warning level. More... | |
#define | logError(MSG,...) _logWrite(&_logModInfo, logLevelError, MSG, ## __VA_ARGS__) |
Format a log message with fatal level. More... | |
Logging Options | |
| |
#define | LOG_MODE_TRACE 1 |
Log everything, including TRACING. | |
#define | LOG_MODE_DEBUG 2 |
Log DEBUG and up. More... | |
#define | LOG_MODE_INFO 3 |
Log INFO and up. | |
#define | LOG_MODE_EXCEPT 4 |
Log WARN, ERROR AND FATAL. | |
#define | LOG_MODE_NOTHING 5 |
Log nothing. | |
Enumerations | |
enum | LogLevel { logLevelTrace, logLevelDebug, logLevelInfo, logLevelWarn, logLevelError, logLevelFatal, logLevelDisabled } |
Logging levels. More... | |
Functions | |
void | _logWrite (LogModInfo *mod, LogLevel level, const char *msg,...) |
Write a logging statement. More... | |
void | _logOut (LogLevel level, char *logLine) |
External dependency function. More... | |
void | logEnable (bool enable) |
Enable logging. More... | |
void | logSetGlobalLevel (LogLevel level) |
Set the global log level. More... | |
uint32_t | _logTime () |
Stub function, which should return the current time in seconds, since whatever. More... | |
Implements a generic logger facility.
The logger can define a lowest logging level during compile time. All logging statements lower than this level will be removed from the compile, thus saving space.
Definition in file log.h.
#define LOG_DEF | ( | NAME, | |
... | |||
) | LOG_DEF_LVL(NAME, LOG_LEVEL_DEFAULT) |
Define a logger for a module.
Must be done INSIDE the C file, not in an header, since a variable named '_logModInfo' will be defined. Putting it in a header will cause name collisions.
The level will be set to default. If you wish to specify a level use LOG_DEF_LVL().
NAME | the name, without quotes. |
#define LOG_DEF_LVL | ( | NAME, | |
LEVEL | |||
) | static LogModInfo _logModInfo = { .name = STR(NAME), .level = LEVEL }; |
#define LOG_MODE LOG_MODE_INFO |
#define logError | ( | MSG, | |
... | |||
) | _logWrite(&_logModInfo, logLevelError, MSG, ## __VA_ARGS__) |
Format a log message with fatal level.
MSG | The formatting string. |
... | Parameters |
#define logInfo | ( | MSG, | |
... | |||
) | _logWrite(&_logModInfo, logLevelInfo, MSG, ## __VA_ARGS__) |
Write a log message with formatting on info level.
Using this function allows the compiler to remove the call completely if the compile time level is higher than LOG_MODE_INFO.
MSG | The message. |
#define logWarn | ( | MSG, | |
... | |||
) | _logWrite(&_logModInfo, logLevelWarn, MSG, ## __VA_ARGS__) |
Format a log message with warning level.
MSG | The formatting string. |
... | Parameters |
enum LogLevel |
Logging levels.
void _logOut | ( | LogLevel | level, |
char * | logLine | ||
) |
uint32_t _logTime | ( | ) |
void _logWrite | ( | LogModInfo * | mod, |
LogLevel | level, | ||
const char * | msg, | ||
... | |||
) |
void logEnable | ( | bool | enable | ) |