Logging API.
More...
#include "ucx.h"
#include "map.h"
#include "string.h"
#include <stdio.h>
Go to the source code of this file.
|
#define | UCX_LOGGER_ERROR 0x00 |
| Log level for error messages. More...
|
|
#define | UCX_LOGGER_WARN 0x10 |
| Log level for warning messages. More...
|
|
#define | UCX_LOGGER_INFO 0x20 |
| Log level for information messages. More...
|
|
#define | UCX_LOGGER_DEBUG 0x30 |
| Log level for debug messages. More...
|
|
#define | UCX_LOGGER_TRACE 0x40 |
| Log level for trace messages. More...
|
|
#define | UCX_LOGGER_LEVEL 0x01 |
| Output flag for the log level. More...
|
|
#define | UCX_LOGGER_TIMESTAMP 0x02 |
| Output flag for the timestmap. More...
|
|
#define | UCX_LOGGER_SOURCE 0x04 |
| Output flag for the source. More...
|
|
#define | ucx_logger_register_level(logger, level, name) |
| Registers a custom log level. More...
|
|
#define | ucx_logger_log(logger, level, ...) ucx_logger_logf(logger, level, __FILE__, __LINE__, __VA_ARGS__) |
| Logs a message at the specified level. More...
|
|
#define | ucx_logger_error(logger, ...) ucx_logger_log(logger, UCX_LOGGER_ERROR, __VA_ARGS__) |
| Shortcut for logging an error message. More...
|
|
#define | ucx_logger_info(logger, ...) ucx_logger_log(logger, UCX_LOGGER_INFO, __VA_ARGS__) |
| Shortcut for logging an information message. More...
|
|
#define | ucx_logger_warn(logger, ...) ucx_logger_log(logger, UCX_LOGGER_WARN, __VA_ARGS__) |
| Shortcut for logging a warning message. More...
|
|
#define | ucx_logger_debug(logger, ...) ucx_logger_log(logger, UCX_LOGGER_DEBUG, __VA_ARGS__) |
| Shortcut for logging a debug message. More...
|
|
#define | ucx_logger_trace(logger, ...) ucx_logger_log(logger, UCX_LOGGER_TRACE, __VA_ARGS__) |
| Shortcut for logging a trace message. More...
|
|
Logging API.
- Author
- Mike Becker, Olaf Wintermann
◆ UCX_LOGGER_DEBUG
#define UCX_LOGGER_DEBUG 0x30 |
Log level for debug messages.
◆ ucx_logger_debug
Shortcut for logging a debug message.
- Parameters
-
logger | the logger to use |
... | format string and arguments |
- See also
- ucx_logger_logf()
◆ UCX_LOGGER_ERROR
#define UCX_LOGGER_ERROR 0x00 |
Log level for error messages.
◆ ucx_logger_error
Shortcut for logging an error message.
- Parameters
-
logger | the logger to use |
... | format string and arguments |
- See also
- ucx_logger_logf()
◆ UCX_LOGGER_INFO
#define UCX_LOGGER_INFO 0x20 |
Log level for information messages.
◆ ucx_logger_info
Shortcut for logging an information message.
- Parameters
-
logger | the logger to use |
... | format string and arguments |
- See also
- ucx_logger_logf()
◆ UCX_LOGGER_LEVEL
#define UCX_LOGGER_LEVEL 0x01 |
Output flag for the log level.
If this flag is set, the log message will contain the log level.
- See also
- UcxLogger.mask
◆ ucx_logger_log
#define ucx_logger_log |
( |
|
logger, |
|
|
|
level, |
|
|
|
... |
|
) |
| ucx_logger_logf(logger, level, __FILE__, __LINE__, __VA_ARGS__) |
Logs a message at the specified level.
- Parameters
-
logger | the logger to use |
level | the level to log the message on |
... | format string and arguments |
- See also
- ucx_logger_logf()
◆ ucx_logger_register_level
#define ucx_logger_register_level |
( |
|
logger, |
|
|
|
level, |
|
|
|
name |
|
) |
| |
Value:{\
unsigned int l; \
l = level; \
ucx_map_int_put(logger->levels, l, (void*) "[" name "]"); \
} while (0);
Registers a custom log level.
- Parameters
-
logger | the logger |
level | the log level as unsigned integer |
name | a string literal describing the level |
◆ UCX_LOGGER_SOURCE
#define UCX_LOGGER_SOURCE 0x04 |
Output flag for the source.
If this flag is set, the log message will contain the source file and line number.
- See also
- UcxLogger.mask
◆ UCX_LOGGER_TIMESTAMP
#define UCX_LOGGER_TIMESTAMP 0x02 |
Output flag for the timestmap.
If this flag is set, the log message will contain the timestmap.
- See also
- UcxLogger.mask
◆ UCX_LOGGER_TRACE
#define UCX_LOGGER_TRACE 0x40 |
Log level for trace messages.
◆ ucx_logger_trace
Shortcut for logging a trace message.
- Parameters
-
logger | the logger to use |
... | format string and arguments |
- See also
- ucx_logger_logf()
◆ UCX_LOGGER_WARN
#define UCX_LOGGER_WARN 0x10 |
Log level for warning messages.
◆ ucx_logger_warn
Shortcut for logging a warning message.
- Parameters
-
logger | the logger to use |
... | format string and arguments |
- See also
- ucx_logger_logf()
◆ ucx_logger_free()
Destroys the logger.
The map containing the valid log levels is also automatically destroyed.
- Parameters
-
logger | the logger to destroy |
◆ ucx_logger_logf()
void ucx_logger_logf |
( |
UcxLogger * |
logger, |
|
|
unsigned int |
level, |
|
|
const char * |
file, |
|
|
const unsigned int |
line, |
|
|
const char * |
format, |
|
|
|
... |
|
) |
| |
Internal log function - use macros instead.
This function uses the format
and variadic arguments for a printf()-style output of the log message.
Dependent on the UcxLogger.mask some information is prepended. The complete format is:
[LEVEL] [TIMESTAMP] [SOURCEFILE]:[LINENO] message
Attention: the message (including automatically generated information) is limited to 4096 characters. The level description is limited to 256 characters and the timestamp string is limited to 128 characters.
- Parameters
-
logger | the logger to use |
level | the level to log on |
file | information about the source file |
line | information about the source line number |
format | format string |
... | arguments |
- See also
- ucx_logger_log()
◆ ucx_logger_new()
UcxLogger* ucx_logger_new |
( |
void * |
stream, |
|
|
unsigned int |
level, |
|
|
unsigned int |
mask |
|
) |
| |
Creates a new logger.
- Parameters
-
stream | the stream, which the logger shall write to |
level | the level on which the logger shall operate |
mask | configuration mask (cf. UcxLogger.mask) |
- Returns
- a new logger object