|
Concord - C Discord API library
A Discord API wrapper library written in C
|
#include <stdio.h>#include <stdarg.h>#include <time.h>#include <stdlib.h>#include <stddef.h>#include <string.h>#include "logmod.h"Go to the source code of this file.
Data Structures | |
| struct | logmod_options |
| Configuration options for a logger. More... | |
| struct | logmod_label |
| Label properties for a log level. More... | |
| struct | logmod_info |
| Information about a log entry. More... | |
| struct | logmod_mut_logger |
| Mutable version of the logger structure. More... | |
| struct | logmod_logger |
| Immutable logger structure. More... | |
| struct | logmod |
| Main logging context structure. More... | |
Macros | |
| #define | LOGMOD_API extern |
| Define symbol visibility for LogMod API. More... | |
| #define | LOGMOD_PRINTF_LIKE(a, b) |
| Format string checking attribute for printf-like functions. More... | |
| #define | LOGMOD_FALLBACK_APPLICATION_ID "APPLICATION" |
| Default application ID for the fallback logger. More... | |
| #define | LOGMOD_FALLBACK_CONTEXT_ID "GLOBAL" |
| Default context ID for the fallback logger. More... | |
| #define | LOGMOD_LABEL_COLOR(_style, _visibility, _color) |
| Helper macro to define label color, style, and visibility at once. More... | |
| #define | LOGMOD_STYLE_REGULAR "0" |
| ANSI text style values. More... | |
| #define | LOGMOD_STYLE_BOLD "1" |
| #define | LOGMOD_STYLE_UNDERLINE "4" |
| #define | LOGMOD_STYLE_STRIKETHROUGH "9" |
| #define | LOGMOD_VISIBILITY_FOREGROUND "3" |
| ANSI text visibility mode values. More... | |
| #define | LOGMOD_VISIBILITY_BACKGROUND "4" |
| #define | LOGMOD_VISIBILITY_INTENSITY "9" |
| #define | LOGMOD_VISIBILITY_BACKGROUND_INTENSITY "10" |
| #define | LOGMOD_COLOR_BLACK "0" |
| ANSI color values. More... | |
| #define | LOGMOD_COLOR_RED "1" |
| #define | LOGMOD_COLOR_GREEN "2" |
| #define | LOGMOD_COLOR_YELLOW "3" |
| #define | LOGMOD_COLOR_BLUE "4" |
| #define | LOGMOD_COLOR_MAGENTA "5" |
| #define | LOGMOD_COLOR_CYAN "6" |
| #define | LOGMOD_COLOR_WHITE "7" |
| #define | __LOGMOD_LOGGER_ATTRS(_qualifier) |
| Internal macro for defining logger attributes. More... | |
| #define | __BLANK |
| #define | logmod_nlog(_level, _logger, _parenthesized_params, num_params) |
| Log a message (C89 compatible version) More... | |
| #define | logmod_log logmod_nlog |
| Alias to logmod_nlog for C89 compatibility. More... | |
| #define | LOGMOD_ENCODE(_style, _visibility, _color, buf) "\x1b[" _style ";" _visibility _color "m" buf "\x1b[0m" |
| Encodes text with ANSI colors and styles. More... | |
| #define | LOGMOD_ENCODE_STATIC(_style, _visibility, _color, buf) |
| Static encoding of text with ANSI colors (compile-time) More... | |
| #define | LOGMOD_ENCODE_TOGGLE(_toggle, _style, _visibility, _color, buf) ((_toggle) ? LOGMOD_ENCODE_STATIC(_style, _visibility, _color, buf) : buf) |
| Dynamic encoding of text with ANSI colors (respects toggle) More... | |
| #define | LOGMOD_ENCODE_LOGGER(_logger, _style, _visibility, _color, buf) |
| Dynamic encoding of text with ANSI colors (respects logger color setting) More... | |
| #define | LMS LOGMOD_ENCODE_STATIC |
| Shorthand for LOGMOD_ENCODE_STATIC. More... | |
| #define | LMT LOGMOD_ENCODE_TOGGLE |
| Shorthand for LOGMOD_ENCODE_TOGGLE. More... | |
| #define | LML LOGMOD_ENCODE_LOGGER |
| Shorthand for LOGMOD_ENCODE_LOGGER. More... | |
| #define | LME LOGMOD_ENCODE |
| Shorthand for LOGMOD_ENCODE. More... | |
| #define | LOGMOD_SPREAD_TUPLE_0(_fmt) _fmt |
| #define | LOGMOD_SPREAD_TUPLE_1(_fmt, _1) _fmt, _1 |
| #define | LOGMOD_SPREAD_TUPLE_2(_fmt, _1, _2) _fmt, _1, _2 |
| #define | LOGMOD_SPREAD_TUPLE_3(_fmt, _1, _2, _3) _fmt, _1, _2, _3 |
| #define | LOGMOD_SPREAD_TUPLE_4(_fmt, _1, _2, _3, _4) _fmt, _2, _3, _4 |
| #define | LOGMOD_SPREAD_TUPLE_5(_fmt, _1, _2, _3, _4, _5) _fmt, _1, _2, _3, _4, _5 |
| #define | LOGMOD_SPREAD_TUPLE_6(_fmt, _1, _2, _3, _4, _5, _6) _fmt, _1, _2, _3, _4, _6 |
| #define | LOGMOD_SPREAD_TUPLE_7(_fmt, _1, _2, _3, _4, _5, _6, _7) _fmt, _1, _2, _3, _4, _5, _6, _7 |
| #define | LOGMOD_SPREAD_TUPLE_8(_fmt, _1, _2, _3, _4, _5, _6, _7, _8) _fmt, _1, _2, _3, _4, _5, _6, _7, _8 |
| #define | LOGMOD_SPREAD_TUPLE_9(_fmt, _1, _2, _3, _4, _5, _6, _7, _8, _9) _fmt, _1, _2, _3, _4, _5, _6, _7, _8, _9 |
| #define | LOGMOD_SPREAD_TUPLE_10(_fmt, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10) _fmt, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10 |
| #define | LOGMOD_SPREAD_TUPLE_11(_fmt, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11) _fmt, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11 |
| #define | LOGMOD_SPREAD_TUPLE_12(_fmt, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12) _fmt, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12 |
| #define | LOGMOD_SPREAD_TUPLE_13(_fmt, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13) _fmt, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13 |
| #define | LOGMOD_SPREAD_TUPLE_14(_fmt, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14) _fmt, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14 |
| #define | LOGMOD_SPREAD_TUPLE_15(_fmt, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15) _fmt, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15 |
| #define | LOGMOD_SPREAD_TUPLE_16(_fmt, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16) _fmt, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16 |
| #define | LOGMOD_FROM_LOGGER(_ctx) |
| Get logmod from any logmod_logger. More... | |
| #define | _LOGMOD_EXPECT(_cond, _error, _return) |
| #define | LOGMOD_EXPECT(_cond, _error) _LOGMOD_EXPECT(_cond, _error, _error) |
| Check if a condition is met and log an error message if not. More... | |
Typedefs | |
| typedef void(* | logmod_lock) (const struct logmod_logger *logger, int should_lock) |
| Lock function type for thread safety. More... | |
| typedef logmod_err(* | logmod_callback) (const struct logmod_logger *logger, const struct logmod_info *info, const char *fmt, va_list args) |
| Callback function type for custom log handling. More... | |
Enumerations | |
| enum | logmod_levels { LOGMOD_LEVEL_TRACE = 0 , LOGMOD_LEVEL_DEBUG , LOGMOD_LEVEL_INFO , LOGMOD_LEVEL_WARN , LOGMOD_LEVEL_ERROR , LOGMOD_LEVEL_FATAL , __LOGMOD_LEVEL_MAX , LOGMOD_LEVEL_CUSTOM = __LOGMOD_LEVEL_MAX } |
| Log levels supported by LogMod. More... | |
| enum | logmod_err { LOGMOD_ERRNO = -2 , LOGMOD_BAD_PARAMETER = -1 , LOGMOD_OK = 0 , LOGMOD_OK_CONTINUE , LOGMOD_OK_SKIPPED } |
| Error codes returned by LogMod functions. More... | |
Functions | |
| logmod_err | logmod_init (struct logmod *logmod, const char *const application_id, struct logmod_logger table[], unsigned length) |
| Initialize the logging context. More... | |
| logmod_err | logmod_cleanup (struct logmod *logmod) |
| Clean up the logging context. More... | |
| logmod_err | logmod_set_lock (struct logmod *logmod, logmod_lock lock) |
| Set the lock function for thread safety. More... | |
| logmod_err | logmod_set_options (struct logmod *logmod, struct logmod_options options) |
| Set default options for all new loggers. More... | |
| logmod_err | logmod_toggle_logger (struct logmod *logmod, const char *const context_id) |
| Toggle a specific logger from logging (default is true) More... | |
| logmod_err | logmod_logger_set_data (struct logmod_logger *logger, void *user_data) |
| Set user data for a logger. More... | |
| logmod_err | logmod_logger_set_callback (struct logmod_logger *logger, const struct logmod_label *const custom_labels, const size_t num_custom_labels, logmod_callback callback) |
| Set callback function and custom labels for a logger. More... | |
| logmod_err | logmod_logger_set_options (struct logmod_logger *logger, struct logmod_options options) |
| Set all options for a logger at once. More... | |
| logmod_err | logmod_logger_set_id_visibility (struct logmod_logger *logger, int show_app_id, int show_context_id) |
| Set visibility of application ID and context ID in log messages. More... | |
| logmod_err | logmod_logger_set_quiet (struct logmod_logger *logger, int quiet) |
| Set quiet mode for a logger. More... | |
| logmod_err | logmod_logger_set_color (struct logmod_logger *logger, int color) |
| Set color mode for a logger. More... | |
| logmod_err | logmod_logger_set_level (struct logmod_logger *logger, unsigned level) |
| Set minimum log level for a logger. More... | |
| logmod_err | logmod_logger_set_logfile (struct logmod_logger *logger, FILE *logfile) |
| Set logfile for a logger. More... | |
| logmod_err | logmod_logger_set_time (struct logmod_logger *logger, int show_time) |
| Set time display for a logger. More... | |
| logmod_err | logmod_logger_set_counter (struct logmod_logger *logger, int show_counter) |
| Set counter display for a logger. More... | |
| struct logmod_logger * | logmod_get_logger (struct logmod *logmod, const char *const context_id) |
| Get or create a logger by context ID. More... | |
| const struct logmod_label * | logmod_logger_get_label (const struct logmod_logger *logger, const unsigned level) |
| Get the label for a specific log level. More... | |
| long | logmod_logger_get_level (const struct logmod_logger *logger, const char *const label) |
| Get the level value for a label name. More... | |
| long | logmod_logger_get_counter (const struct logmod_logger *logger) |
| Get the global message counter for a logger. More... | |
| logmod_err | _logmod_log (const struct logmod_logger *logger, const unsigned line, const char *const filename, const unsigned level, const char *fmt,...) |
| Internal logging implementation function. More... | |
| #define LOGMOD_API extern |
Define symbol visibility for LogMod API.
Define LOGMOD_STATIC to make all symbols static (for single-file inclusion)
| #define LOGMOD_PRINTF_LIKE | ( | a, | |
| b | |||
| ) |
Format string checking attribute for printf-like functions.
This macro adds format string checking when supported by the compiler, helping catch format string errors at compile time.
| a | Format string parameter position |
| b | First variadic argument position |
| #define LOGMOD_FALLBACK_APPLICATION_ID "APPLICATION" |
Default application ID for the fallback logger.
Can be overridden by defining this macro before including logmod.h
| #define LOGMOD_FALLBACK_CONTEXT_ID "GLOBAL" |
Default context ID for the fallback logger.
Can be overridden by defining this macro before including logmod.h
| #define LOGMOD_LABEL_COLOR | ( | _style, | |
| _visibility, | |||
| _color | |||
| ) |
Helper macro to define label color, style, and visibility at once.
| _style | Style name (e.g., BOLD, REGULAR) |
| _visibility | Visibility name (e.g., FOREGROUND, BACKGROUND) |
| _color | Color name (e.g., RED, GREEN) |
| #define LOGMOD_STYLE_REGULAR "0" |
ANSI text style values.
Regular text style
| #define LOGMOD_STYLE_BOLD "1" |
Bold text style
| #define LOGMOD_STYLE_UNDERLINE "4" |
Underlined text style
| #define LOGMOD_STYLE_STRIKETHROUGH "9" |
Strikethrough text style
| #define LOGMOD_VISIBILITY_FOREGROUND "3" |
ANSI text visibility mode values.
Foreground color
| #define LOGMOD_VISIBILITY_BACKGROUND "4" |
Background color
| #define LOGMOD_VISIBILITY_INTENSITY "9" |
Intensity (bright) foreground
| #define LOGMOD_VISIBILITY_BACKGROUND_INTENSITY "10" |
Intensity (bright) background
| #define LOGMOD_COLOR_BLACK "0" |
ANSI color values.
Black color
| #define LOGMOD_COLOR_RED "1" |
Red color
| #define LOGMOD_COLOR_GREEN "2" |
Green color
| #define LOGMOD_COLOR_YELLOW "3" |
Yellow color
| #define LOGMOD_COLOR_BLUE "4" |
Blue color
| #define LOGMOD_COLOR_MAGENTA "5" |
Magenta color
| #define LOGMOD_COLOR_CYAN "6" |
Cyan color
| #define LOGMOD_COLOR_WHITE "7" |
White color
| #define __LOGMOD_LOGGER_ATTRS | ( | _qualifier | ) |
Internal macro for defining logger attributes.
Used to define both const and non-const versions of the logger structure with the same fields.
| _qualifier | Qualifier to apply to mutable fields (const or empty) |
| #define __BLANK |
| #define logmod_nlog | ( | _level, | |
| _logger, | |||
| _parenthesized_params, | |||
| num_params | |||
| ) |
Log a message (C89 compatible version)
| _level | Log level (without LOGMOD_LEVEL_ prefix) |
| _logger | Logger to use, or NULL for default |
| _parenthesized_params | Format and arguments in parentheses |
| num_params | Number of arguments in the format string |
| #define logmod_log logmod_nlog |
Alias to logmod_nlog for C89 compatibility.
| #define LOGMOD_ENCODE | ( | _style, | |
| _visibility, | |||
| _color, | |||
| buf | |||
| ) | "\x1b[" _style ";" _visibility _color "m" buf "\x1b[0m" |
Encodes text with ANSI colors and styles.
| _style | Style code (LOGMOD_STYLE_* macros) |
| _visibility | Visibility code (LOGMOD_VISIBILITY_* macros) |
| _color | Color code (LOGMOD_COLOR_* macros) |
| buf | Text buffer to encode |
| #define LOGMOD_ENCODE_STATIC | ( | _style, | |
| _visibility, | |||
| _color, | |||
| buf | |||
| ) |
Static encoding of text with ANSI colors (compile-time)
| _style | Style name (e.g., BOLD, REGULAR) |
| _visibility | Visibility name (e.g., FOREGROUND, BACKGROUND) |
| _color | Color name (e.g., RED, GREEN) |
| buf | The text to encode |
| #define LOGMOD_ENCODE_TOGGLE | ( | _toggle, | |
| _style, | |||
| _visibility, | |||
| _color, | |||
| buf | |||
| ) | ((_toggle) ? LOGMOD_ENCODE_STATIC(_style, _visibility, _color, buf) : buf) |
Dynamic encoding of text with ANSI colors (respects toggle)
| _toggle | Toggle to enable or disable color encoding |
| _style | Style name (e.g., BOLD, REGULAR) |
| _visibility | Visibility name (e.g., FOREGROUND, BACKGROUND) |
| _color | Color name (e.g., RED, GREEN) |
| buf | The text to encode |
| #define LOGMOD_ENCODE_LOGGER | ( | _logger, | |
| _style, | |||
| _visibility, | |||
| _color, | |||
| buf | |||
| ) |
Dynamic encoding of text with ANSI colors (respects logger color setting)
| _logger | The logger instance to check for color enabled setting |
| _style | Style name (e.g., BOLD, REGULAR) |
| _visibility | Visibility name (e.g., FOREGROUND, BACKGROUND) |
| _color | Color name (e.g., RED, GREEN) |
| buf | The text to encode |
| #define LMS LOGMOD_ENCODE_STATIC |
Shorthand for LOGMOD_ENCODE_STATIC.
| #define LMT LOGMOD_ENCODE_TOGGLE |
Shorthand for LOGMOD_ENCODE_TOGGLE.
| #define LML LOGMOD_ENCODE_LOGGER |
Shorthand for LOGMOD_ENCODE_LOGGER.
| #define LME LOGMOD_ENCODE |
Shorthand for LOGMOD_ENCODE.
| #define LOGMOD_SPREAD_TUPLE_0 | ( | _fmt | ) | _fmt |
| #define LOGMOD_SPREAD_TUPLE_1 | ( | _fmt, | |
| _1 | |||
| ) | _fmt, _1 |
| #define LOGMOD_SPREAD_TUPLE_2 | ( | _fmt, | |
| _1, | |||
| _2 | |||
| ) | _fmt, _1, _2 |
| #define LOGMOD_SPREAD_TUPLE_3 | ( | _fmt, | |
| _1, | |||
| _2, | |||
| _3 | |||
| ) | _fmt, _1, _2, _3 |
| #define LOGMOD_SPREAD_TUPLE_4 | ( | _fmt, | |
| _1, | |||
| _2, | |||
| _3, | |||
| _4 | |||
| ) | _fmt, _2, _3, _4 |
| #define LOGMOD_SPREAD_TUPLE_5 | ( | _fmt, | |
| _1, | |||
| _2, | |||
| _3, | |||
| _4, | |||
| _5 | |||
| ) | _fmt, _1, _2, _3, _4, _5 |
| #define LOGMOD_SPREAD_TUPLE_6 | ( | _fmt, | |
| _1, | |||
| _2, | |||
| _3, | |||
| _4, | |||
| _5, | |||
| _6 | |||
| ) | _fmt, _1, _2, _3, _4, _6 |
| #define LOGMOD_SPREAD_TUPLE_7 | ( | _fmt, | |
| _1, | |||
| _2, | |||
| _3, | |||
| _4, | |||
| _5, | |||
| _6, | |||
| _7 | |||
| ) | _fmt, _1, _2, _3, _4, _5, _6, _7 |
| #define LOGMOD_SPREAD_TUPLE_8 | ( | _fmt, | |
| _1, | |||
| _2, | |||
| _3, | |||
| _4, | |||
| _5, | |||
| _6, | |||
| _7, | |||
| _8 | |||
| ) | _fmt, _1, _2, _3, _4, _5, _6, _7, _8 |
| #define LOGMOD_SPREAD_TUPLE_9 | ( | _fmt, | |
| _1, | |||
| _2, | |||
| _3, | |||
| _4, | |||
| _5, | |||
| _6, | |||
| _7, | |||
| _8, | |||
| _9 | |||
| ) | _fmt, _1, _2, _3, _4, _5, _6, _7, _8, _9 |
| #define LOGMOD_SPREAD_TUPLE_10 | ( | _fmt, | |
| _1, | |||
| _2, | |||
| _3, | |||
| _4, | |||
| _5, | |||
| _6, | |||
| _7, | |||
| _8, | |||
| _9, | |||
| _10 | |||
| ) | _fmt, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10 |
| #define LOGMOD_SPREAD_TUPLE_11 | ( | _fmt, | |
| _1, | |||
| _2, | |||
| _3, | |||
| _4, | |||
| _5, | |||
| _6, | |||
| _7, | |||
| _8, | |||
| _9, | |||
| _10, | |||
| _11 | |||
| ) | _fmt, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11 |
| #define LOGMOD_SPREAD_TUPLE_12 | ( | _fmt, | |
| _1, | |||
| _2, | |||
| _3, | |||
| _4, | |||
| _5, | |||
| _6, | |||
| _7, | |||
| _8, | |||
| _9, | |||
| _10, | |||
| _11, | |||
| _12 | |||
| ) | _fmt, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12 |
| #define LOGMOD_SPREAD_TUPLE_13 | ( | _fmt, | |
| _1, | |||
| _2, | |||
| _3, | |||
| _4, | |||
| _5, | |||
| _6, | |||
| _7, | |||
| _8, | |||
| _9, | |||
| _10, | |||
| _11, | |||
| _12, | |||
| _13 | |||
| ) | _fmt, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13 |
| #define LOGMOD_SPREAD_TUPLE_14 | ( | _fmt, | |
| _1, | |||
| _2, | |||
| _3, | |||
| _4, | |||
| _5, | |||
| _6, | |||
| _7, | |||
| _8, | |||
| _9, | |||
| _10, | |||
| _11, | |||
| _12, | |||
| _13, | |||
| _14 | |||
| ) | _fmt, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14 |
| #define LOGMOD_SPREAD_TUPLE_15 | ( | _fmt, | |
| _1, | |||
| _2, | |||
| _3, | |||
| _4, | |||
| _5, | |||
| _6, | |||
| _7, | |||
| _8, | |||
| _9, | |||
| _10, | |||
| _11, | |||
| _12, | |||
| _13, | |||
| _14, | |||
| _15 | |||
| ) | _fmt, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15 |
| #define LOGMOD_SPREAD_TUPLE_16 | ( | _fmt, | |
| _1, | |||
| _2, | |||
| _3, | |||
| _4, | |||
| _5, | |||
| _6, | |||
| _7, | |||
| _8, | |||
| _9, | |||
| _10, | |||
| _11, | |||
| _12, | |||
| _13, | |||
| _14, | |||
| _15, | |||
| _16 | |||
| ) | _fmt, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16 |
| #define LOGMOD_FROM_LOGGER | ( | _ctx | ) |
Get logmod from any logmod_logger.
| #define _LOGMOD_EXPECT | ( | _cond, | |
| _error, | |||
| _return | |||
| ) |
| #define LOGMOD_EXPECT | ( | _cond, | |
| _error | |||
| ) | _LOGMOD_EXPECT(_cond, _error, _error) |
Check if a condition is met and log an error message if not.
| _cond | Condition to check |
| _error | Error code to return if the condition is false |
| typedef void(* logmod_lock) (const struct logmod_logger *logger, int should_lock) |
Lock function type for thread safety.
| logger | The logger instance |
| should_lock | 1 to acquire lock, 0 to release |
| typedef logmod_err(* logmod_callback) (const struct logmod_logger *logger, const struct logmod_info *info, const char *fmt, va_list args) |
Callback function type for custom log handling.
| logger | The logger instance |
| info | Information about the log entry |
| fmt | Format string |
| args | Variable arguments list |
| enum logmod_levels |
Log levels supported by LogMod.
Built-in log levels ordered by severity (lowest to highest) Custom log levels should start at LOGMOD_LEVEL_CUSTOM
| enum logmod_err |
Error codes returned by LogMod functions.
| logmod_err logmod_init | ( | struct logmod * | logmod, |
| const char *const | application_id, | ||
| struct logmod_logger | table[], | ||
| unsigned | length | ||
| ) |
Initialize the logging context.
| logmod | Pointer to the logging context structure |
| application_id | Application identifier string |
| table | Array to store loggers (must be pre-allocated) |
| length | Capacity of the table array |
| logmod_err logmod_cleanup | ( | struct logmod * | logmod | ) |
Clean up the logging context.
| logmod | Pointer to the logging context structure |
| logmod_err logmod_set_lock | ( | struct logmod * | logmod, |
| logmod_lock | lock | ||
| ) |
Set the lock function for thread safety.
| logmod | Pointer to the logging context structure |
| lock | Lock function to use |
| logmod_err logmod_set_options | ( | struct logmod * | logmod, |
| struct logmod_options | options | ||
| ) |
Set default options for all new loggers.
| logmod | Pointer to the logging context structure |
| options | Default options to use for new loggers |
| logmod_err logmod_toggle_logger | ( | struct logmod * | logmod, |
| const char *const | context_id | ||
| ) |
Toggle a specific logger from logging (default is true)
| logmod | Pointer to the logging context structure |
| context_id | The context id of the logger to be enabled or disabled |
| logmod_err logmod_logger_set_data | ( | struct logmod_logger * | logger, |
| void * | user_data | ||
| ) |
Set user data for a logger.
| logger | Pointer to the logger |
| user_data | Pointer to user-defined data |
| logmod_err logmod_logger_set_callback | ( | struct logmod_logger * | logger, |
| const struct logmod_label *const | custom_labels, | ||
| const size_t | num_custom_labels, | ||
| logmod_callback | callback | ||
| ) |
Set callback function and custom labels for a logger.
| logger | Pointer to the logger |
| custom_labels | Array of custom log level labels or NULL |
| num_custom_labels | Number of custom labels in the array |
| callback | Callback function for log processing |
| logmod_err logmod_logger_set_options | ( | struct logmod_logger * | logger, |
| struct logmod_options | options | ||
| ) |
Set all options for a logger at once.
| logger | Pointer to the logger |
| options | Options structure |
| logmod_err logmod_logger_set_id_visibility | ( | struct logmod_logger * | logger, |
| int | show_app_id, | ||
| int | show_context_id | ||
| ) |
Set visibility of application ID and context ID in log messages.
| logger | Pointer to the logger |
| show_app_id | 1 to show application ID, 0 to hide |
| show_context_id | 1 to show context ID, 0 to hide |
| logmod_err logmod_logger_set_quiet | ( | struct logmod_logger * | logger, |
| int | quiet | ||
| ) |
Set quiet mode for a logger.
| logger | Pointer to the logger |
| quiet | 1 to enable quiet mode (suppress console output), 0 to disable |
| logmod_err logmod_logger_set_color | ( | struct logmod_logger * | logger, |
| int | color | ||
| ) |
Set color mode for a logger.
| logger | Pointer to the logger |
| color | 1 to enable colored output, 0 to disable |
| logmod_err logmod_logger_set_level | ( | struct logmod_logger * | logger, |
| unsigned | level | ||
| ) |
Set minimum log level for a logger.
| logger | Pointer to the logger |
| level | Minimum level to log (messages below this will be suppressed) |
| logmod_err logmod_logger_set_logfile | ( | struct logmod_logger * | logger, |
| FILE * | logfile | ||
| ) |
Set logfile for a logger.
| logger | Pointer to the logger |
| logfile | File pointer to write logs to, or NULL to disable |
| logmod_err logmod_logger_set_time | ( | struct logmod_logger * | logger, |
| int | show_time | ||
| ) |
Set time display for a logger.
| logger | Pointer to the logger |
| show_time | 0 to suppress time in log messages, 1 to show it |
| logmod_err logmod_logger_set_counter | ( | struct logmod_logger * | logger, |
| int | show_counter | ||
| ) |
Set counter display for a logger.
| logger | Pointer to the logger |
| show_counter | 0 to hide counter in log messages, 1 to show it |
| struct logmod_logger * logmod_get_logger | ( | struct logmod * | logmod, |
| const char *const | context_id | ||
| ) |
Get or create a logger by context ID.
| logmod | Pointer to the logging context |
| context_id | Context identifier string |
| const struct logmod_label * logmod_logger_get_label | ( | const struct logmod_logger * | logger, |
| const unsigned | level | ||
| ) |
Get the label for a specific log level.
| logger | Pointer to the logger |
| level | Log level to get the label for |
< Strikethrough text style
< Intensity (bright) background
< Yellow color
| long logmod_logger_get_level | ( | const struct logmod_logger * | logger, |
| const char *const | label | ||
| ) |
Get the level value for a label name.
| logger | Pointer to the logger |
| label | Label name to look up |
| long logmod_logger_get_counter | ( | const struct logmod_logger * | logger | ) |
Get the global message counter for a logger.
| logger | Pointer to the logger |
| logmod_err _logmod_log | ( | const struct logmod_logger * | logger, |
| const unsigned | line, | ||
| const char *const | filename, | ||
| const unsigned | level, | ||
| const char * | fmt, | ||
| ... | |||
| ) |
Internal logging implementation function.
| logger | The logger instance |
| line | Source line number |
| filename | Source file path |
| level | Log level |
| fmt | Format string |
| ... | Format arguments |