Files
PixelDefense/engine/breeze/core/logger.h

54 lines
1.4 KiB
C

#ifndef BREEZE_LOGGER_H
#define BREEZE_LOGGER_H
#include "../defines.h"
typedef enum BzLoggerLevel {
BZ_LOG_TRACE,
BZ_LOG_DEBUG,
BZ_LOG_INFO,
BZ_LOG_WARN,
BZ_LOG_ERROR,
BZ_LOG_FATAL,
} BzLoggerLevel;
typedef struct BzLoggerEvent {
void *userData;
const char *time;
BzLoggerLevel level;
const char *file;
int line;
const char *fmt;
void *apList;
} BzLoggerEvent;
typedef struct BzLoggerCallback {
void (*callback)(BzLoggerEvent *ev);
enum BzLoggerLevel level;
void *userData;
} BzLoggerCallback;
bool bzLoggerInit();
void bzLoggerDeinit();
void bzLoggerEnableDefaultLog(bool enable);
void bzLoggerSetLevel(BzLoggerLevel level);
BzLoggerLevel bzLoggerGetLevel();
void bzLoggerLog(BzLoggerLevel level, const char *file, int line, const char *fmt, ...);
bool bzLoggerAddFP(void *fp, BzLoggerLevel level);
bool bzLoggerAddCB(const BzLoggerCallback *callback);
#define bzLogTrace(...) bzLoggerLog(BZ_LOG_TRACE, __FILE__, __LINE__, __VA_ARGS__)
#define bzLogDebug( ...) bzLoggerLog(BZ_LOG_DEBUG, __FILE__, __LINE__, __VA_ARGS__)
#define bzLogInfo(...) bzLoggerLog(BZ_LOG_INFO, __FILE__, __LINE__, __VA_ARGS__)
#define bzLogWarn(...) bzLoggerLog(BZ_LOG_WARN, __FILE__, __LINE__, __VA_ARGS__)
#define bzLogError(...) bzLoggerLog(BZ_LOG_ERROR, __FILE__, __LINE__, __VA_ARGS__)
#define bzLogFatal(...) bzLoggerLog(BZ_LOG_FATAL, __FILE__, __LINE__, __VA_ARGS__)
#endif //BREEZE_LOGGER_H