50 lines
1.4 KiB
C
50 lines
1.4 KiB
C
#ifndef DEPLOYD_LOGGING_H_
|
|
#define DEPLOYD_LOGGING_H_
|
|
|
|
#include <stdio.h>
|
|
|
|
#include "conf.h"
|
|
|
|
#include "def.h"
|
|
|
|
typedef enum {
|
|
DP_LOG_DEBUG = 0,
|
|
DP_LOG_INFO,
|
|
DP_LOG_WARN,
|
|
DP_LOG_ERROR,
|
|
DP_LOG_FATAL,
|
|
} dp_LogLevel;
|
|
|
|
typedef struct {
|
|
const char *_target;
|
|
dp_LogLevel _min_level;
|
|
FILE *_file;
|
|
} dp_Logger;
|
|
|
|
void dp_err(dp_Logger *logger,
|
|
dp_LogLevel level,
|
|
const char *who,
|
|
const char *msg);
|
|
void dp_log(dp_Logger *logger,
|
|
dp_LogLevel level,
|
|
const char *who,
|
|
const char *msg);
|
|
void dp_logf(dp_Logger *logger,
|
|
dp_LogLevel level,
|
|
const char *who,
|
|
const char *fmt,
|
|
...) __attribute__((format(printf, 4, 5)));
|
|
void dp_log_flush(dp_Logger *logger);
|
|
void dp_log_set_target(dp_Logger *logger, const char *target);
|
|
void dp_log_inherit(dp_Logger *src, dp_Logger *dest);
|
|
void dp_log_set_level(dp_Logger *logger, dp_LogLevel level);
|
|
bool dp_log_set_file(dp_Logger *logger, const char *file, const char *modes);
|
|
void dp_log_close_file(dp_Logger *logger);
|
|
|
|
#define dp_erh(logger, msg) dp_err((logger), DP_LOG_ERROR, __func__, (msg))
|
|
#define dp_fah(logger, msg) dp_err((logger), DP_LOG_FATAL, __func__, (msg))
|
|
#define dp_loh(logger, level, msg) dp_log((logger), (level), __func__, (msg))
|
|
#define dp_lohf(logger, level, fmt, ...) \
|
|
dp_logf((logger), (level), __func__, (fmt), __VA_ARGS__)
|
|
|
|
#endif /* DEPLOYD_LOGGING_H_ */
|