XLogColor
typedef enum{
XLOG_COLOR_DEFAULT,
XLOG_COLOR_BLACK,
XLOG_COLOR_RED,
XLOG_COLOR_GREEN,
XLOG_COLOR_YELLOW,
XLOG_COLOR_BLUE,
XLOG_COLOR_MAGENTA,
XLOG_COLOR_CYAN,
XLOG_COLOR_WHITE,
XLOG_COLOR_BRIGHT_BLACK,
XLOG_COLOR_BRIGHT_RED,
XLOG_COLOR_BRIGHT_GREEN,
XLOG_COLOR_BRIGHT_YELLOW,
XLOG_COLOR_BRIGHT_BLUE,
XLOG_COLOR_BRIGHT_MAGENTA,
XLOG_COLOR_BRIGHT_CYAN,
XLOG_COLOR_BRIGHT_WHITE,
}XLogColor;
XLogComponent
typedef enum{
XLOG_PLAIN=0,
XLOG_TIMESTAMP=1<<0,
XLOG_TAG=1<<1,
XLOG_SOURCEINFO=1<<2,
XLOG_DEFAULT=XLOG_TAG|XLOG_TIMESTAMP|XLOG_SOURCEINFO
}XLogComponent;
XLogLevel
typedef enum{
XLOG_LEVEL_DEBUG=0,
XLOG_LEVEL_INFO,
XLOG_LEVEL_WARNING,
XLOG_LEVEL_ERROR,
XLOG_LEVEL_FATAL,
}XLogLevel;
XLogOutputFlags
typedef enum{
XLOG_OUTPUT_NONE=0,
XLOG_OUTPUT_CONSOLE=1<<0,
XLOG_OUTPUT_FILE=1<<1,
XLOG_OUTPUT_BOTH=XLOG_OUTPUT_CONSOLE|XLOG_OUTPUT_FILE,
}XLogOutputFlags;
X_LOG_BUFFER_SIZE
Default buffer size for log messages.
Can be overriden before including this header
#define X_LOG_BUFFER_SIZE(1024 *4)
x_log_close
Shutdown the logging system and release resources.
void x_log_close(XLogger *logger);
x_log_get_console
Get the current console output stream (never NULL; defaults to stdout).
FILE * x_log_get_console(const XLogger *logger);
x_log_init
Initialize the logging system.
void x_log_init(
XLogger *logger,
XLogOutputFlags outputs,
XLogLevel level,
const char *filename
);
Parameters
XLogger *logger
- Logger context to initialize.
XLogOutputFlags outputs
- Bitmask specifying enabled log outputs (console, file, etc.).
XLogLevel level
- Minimum log level to emit.
const char *filename
- Optional file path for file output, or NULL if unused.
x_log_set_console
Set the output stream used for console logging.
This does not affect file logging configured via x_log_init() (XLOG_OUTPUT_FILE).
Passing NULL resets to stdout.
void x_log_set_console(
XLogger *logger,
FILE *out
);