forked from Telodendria/Telodendria
64 lines
1.1 KiB
C
64 lines
1.1 KiB
C
|
#ifndef TELODENDRIA_LOG_H
|
||
|
#define TELODENDRIA_LOG_H
|
||
|
|
||
|
#include <stdio.h>
|
||
|
#include <stddef.h>
|
||
|
|
||
|
typedef enum LogLevel {
|
||
|
LOG_ERROR,
|
||
|
LOG_WARNING,
|
||
|
LOG_TASK,
|
||
|
LOG_MESSAGE,
|
||
|
LOG_DEBUG
|
||
|
} LogLevel;
|
||
|
|
||
|
typedef enum LogFlag {
|
||
|
LOG_FLAG_COLOR = (1 << 0)
|
||
|
} LogFlag;
|
||
|
|
||
|
typedef struct LogConfig LogConfig;
|
||
|
|
||
|
extern LogConfig *
|
||
|
LogConfigCreate(void);
|
||
|
|
||
|
extern void
|
||
|
LogConfigFree(LogConfig *config);
|
||
|
|
||
|
extern void
|
||
|
LogConfigLevelSet(LogConfig *config, LogLevel level);
|
||
|
|
||
|
extern LogLevel
|
||
|
LogConfigLevelGet(LogConfig *config);
|
||
|
|
||
|
extern void
|
||
|
LogConfigIndentSet(LogConfig *config, size_t indent);
|
||
|
|
||
|
extern size_t
|
||
|
LogConfigIndentGet(LogConfig *config);
|
||
|
|
||
|
extern void
|
||
|
LogConfigIndent(LogConfig *config);
|
||
|
|
||
|
extern void
|
||
|
LogConfigUnindent(LogConfig *config);
|
||
|
|
||
|
extern void
|
||
|
LogConfigOutputSet(LogConfig *config, FILE *out);
|
||
|
|
||
|
extern void
|
||
|
LogConfigFlagSet(LogConfig *config, int flags);
|
||
|
|
||
|
extern void
|
||
|
LogConfigFlagClear(LogConfig *config, int flags);
|
||
|
|
||
|
extern int
|
||
|
LogConfigFlagGet(LogConfig *config, int flags);
|
||
|
|
||
|
extern void
|
||
|
LogConfigTimeStampFormatSet(LogConfig *config, char *tsFmt);
|
||
|
|
||
|
extern void
|
||
|
Log(LogConfig *config, LogLevel level, const char *msg, ...);
|
||
|
|
||
|
#endif
|