summaryrefslogtreecommitdiff
path: root/src/logging/logging.h
blob: c8a58645cafc21f3d9401f90b540f2ad543354d4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#ifndef HONEY_LOGGING_H
#define HONEY_LOGGING_H

#include <stdio.h>

enum honey_log_level_t
   { FATAL, ERROR, WARN, INFO, DEBUG };

struct honey_log_info_t {
   enum honey_log_level_t log_level;
   FILE *log_file;
};

extern struct honey_log_info_t honey_log_info;

const char * honey_log_level_str();


void honey_log_set_level(enum honey_log_level_t level);
enum honey_log_level_t honey_log_get_level();

void honey_log_set_file(FILE *file);
FILE * honey_log_get_file();

void honey_log(enum honey_log_level_t required_level,
	       const char *prefix,
	       const char *fmt, ...);

#define honey_debug(...) honey_log(DEBUG, "[DEBUG]", __VA_ARGS__)
#define honey_info(...)  honey_log(INFO, "[INFO]", __VA_ARGS__)
#define honey_warn(...)  honey_log(WARN, "[WARN]", __VA_ARGS__)
#define honey_error(...)  honey_log(ERROR, "[ERROR]", __VA_ARGS__)
#define honey_fatal(...)  honey_log(FATAL, "[FATAL]", __VA_ARGS__)

#endif