|
CX Framework
Cross-platform C utility framework
|
Core logging system API. More...
#include <cx/cx.h>#include <cx/string/strbase.h>#include <cx/stype/stvar.h>#include <cx/thread/atomic.h>Go to the source code of this file.
Data Structures | |
| struct | LogChannel |
| struct | LogSite |
| struct | LogRecord |
Macros | |
| #define | LOG_Broadcast 0x00000001 |
| #define | LOG_Restricted 0x00000002 |
| #define | LOG_Declared 0x00000004 |
| #define | logStr(level, str) _logStr_##level(LOG_##level, LOG_CHANNEL, LOG_SiteAlways, 0, str) |
| #define | logStrC(level, chan, str) _logStr_##level(LOG_##level, chan, LOG_SiteAlways, 0, str) |
| #define | logFmt(level, fmt, ...) _logFmtArgs(level, LOG_CHANNEL, LOG_SiteAlways, 0, fmt, __VA_ARGS__) |
| #define | logFmtC(level, chan, fmt, ...) _logFmtArgs(level, chan, LOG_SiteAlways, 0, fmt, __VA_ARGS__) |
| #define | logStrOnce(level, str) _logStr_##level(LOG_##level, LOG_CHANNEL, LOG_SiteOnce, 0, str) |
| #define | logStrEveryN(level, n, str) _logStr_##level(LOG_##level, LOG_CHANNEL, LOG_SiteEveryN, (n), str) |
| #define | logStrEveryT(level, interval, str) _logStr_##level(LOG_##level, LOG_CHANNEL, LOG_SiteEveryT, (interval), str) |
| #define | logFmtOnce(level, fmt, ...) _logFmtArgs(level, LOG_CHANNEL, LOG_SiteOnce, 0, fmt, __VA_ARGS__) |
| #define | logFmtEveryN(level, n, fmt, ...) _logFmtArgs(level, LOG_CHANNEL, LOG_SiteEveryN, (n), fmt, __VA_ARGS__) |
| #define | logFmtEveryT(level, interval, fmt, ...) _logFmtArgs(level, LOG_CHANNEL, LOG_SiteEveryT, (interval), fmt, __VA_ARGS__) |
Typedefs | |
| typedef struct LogChannel | LogChannel |
| typedef struct LogDest | LogDest |
| Opaque handle to a registered log destination. | |
| typedef struct LogSite | LogSite |
| typedef struct LogCtx | LogCtx |
| Opaque handle to a log context; see logctx.h. | |
| typedef struct LogRecord | LogRecord |
| typedef void(* | LogDestMsg) (const LogRecord *rec, void *userdata) |
| typedef void(* | LogDestBatchDone) (uint32 batchid, void *userdata) |
| typedef void(* | LogDestClose) (void *userdata) |
| typedef bool(* | LogChanEnumCB) (LogChannel *chan, void *ctx) |
Enumerations | |
| enum | LOG_LEVEL_ENUM { LOG_Fatal , LOG_Error , LOG_Warn , LOG_Notice , LOG_Info , LOG_Verbose , LOG_Diag , LOG_Debug , LOG_Trace , LOG_Count } |
| enum | LOG_SITE_GATE { LOG_SiteAlways = 0 , LOG_SiteOnce , LOG_SiteEveryN , LOG_SiteEveryT } |
Functions | |
| LogChannel * | logChan (strref path) |
| LogChannel * | logDeclareChan (strref path, flags_t flags) |
| void | logRecordRender (string *out, const LogRecord *rec) |
| LogDest * | logRegisterDest (int maxlevel, strref chanfilter, LogDestMsg msgfunc, LogDestBatchDone batchfunc, LogDestClose closefunc, void *userdata) |
| bool | logDestAddFilter (LogDest *dhandle, strref pattern, bool exclude) |
| bool | logDestSetFilter (LogDest *dhandle, strref pattern) |
| bool | logDestSetLevel (LogDest *dhandle, int maxlevel) |
| void | logEnumChans (LogChanEnumCB cb, void *ctx) |
| bool | logUnregisterDest (LogDest *dhandle) |
| void | logFlush (void) |
| void | logShutdown (void) |
| void | logRestart (void) |
| void | logBatchBegin (void) |
| void | logBatchEnd (void) |
| bool | logWouldLog (int level, LogChannel *chan) |
Variables | |
| strref | LogLevelNames [] |
| Array of log level names as strings (e.g., "Fatal", "Error", etc.) | |
| strref | LogLevelAbbrev [] |
| Array of single-character log level abbreviations (e.g., "F", "E", etc.) | |
| LogChannel * | LogDefault |
| Default log channel used when no channel is specified. | |
Core logging system API.
Definition in file log.h.