|
CX Framework
Cross-platform C utility framework
|
Data Structures | |
| struct | LogMembufData |
Typedefs | |
| typedef struct LogMembufData | LogMembufData |
Functions | |
| LogMembufData * | logmembufCreate (uint32 size) |
| LogDest * | logmembufRegister (int maxlevel, LogCategory *catfilter, LogMembufData *membuf) |
| LogDest * | logmembufRegisterWithDefer (int maxlevel, LogCategory *catfilter, LogMembufData *membuf, LogDest *deferdest) |
| void | logmembufMsgFunc (int level, LogCategory *cat, int64 timestamp, strref msg, uint32 batchid, void *userdata) |
| void | logmembufCloseFunc (void *userdata) |
Memory buffer logging destination that writes log messages to a fixed-size circular buffer in memory. Useful for debugging, testing, and capturing logs in memory-constrained environments. When the buffer fills, new messages wrap around and overwrite the oldest entries.
Basic Usage:
| typedef struct LogMembufData LogMembufData |
Memory buffer log destination state
Contains the circular buffer and current write position. When cur reaches size, new messages wrap to the beginning. The buffer is null-terminated when possible.
| void logmembufCloseFunc | ( | void * | userdata | ) |
Cleanup callback for memory buffer destinations
Frees the buffer and releases resources.
| userdata | LogMembufData pointer from logmembufCreate() |
| LogMembufData * logmembufCreate | ( | uint32 | size | ) |
Create a memory buffer log destination
Allocates a fixed-size circular buffer for log messages. The buffer uses a compact format with timestamps and single-character log levels. Messages longer than the buffer size are truncated.
| size | Buffer size in bytes |
| void logmembufMsgFunc | ( | int | level, |
| LogCategory * | cat, | ||
| int64 | timestamp, | ||
| strref | msg, | ||
| uint32 | batchid, | ||
| void * | userdata | ||
| ) |
Log message callback for memory buffer destinations
Formats and writes a log message to the circular buffer. Uses a compact format: "YYYYMMDD HHMMSS L [Category]: Message\n"
| level | Log severity level |
| cat | Category, or NULL for default |
| timestamp | Wall clock timestamp |
| msg | Log message text |
| batchid | Batch identifier (unused) |
| userdata | LogMembufData pointer from logmembufCreate() |
| LogDest * logmembufRegister | ( | int | maxlevel, |
| LogCategory * | catfilter, | ||
| LogMembufData * | membuf | ||
| ) |
Register a memory buffer destination with the logging system
Registers the memory buffer as a log destination. Messages will be formatted in a compact style and written to the circular buffer. The buffer destination will be automatically cleaned up when unregistered.
| maxlevel | Maximum log level to write to buffer |
| catfilter | Category filter, or NULL for all non-private categories |
| membuf | Memory buffer handle from logmembufCreate() |
| LogDest * logmembufRegisterWithDefer | ( | int | maxlevel, |
| LogCategory * | catfilter, | ||
| LogMembufData * | membuf, | ||
| LogDest * | deferdest | ||
| ) |
Register a memory buffer destination and flush deferred logs
Atomically registers a memory buffer destination while flushing previously deferred logs to it. Useful for capturing early startup logs in memory before other destinations are available.
| maxlevel | Maximum log level to write to buffer |
| catfilter | Category filter, or NULL for all non-private categories |
| membuf | Memory buffer handle from logmembufCreate() |
| deferdest | Deferred destination to flush (destroyed during this call) |