~ruther/CTU-FEE-B0B35APO-Semestral-project

ref: 0631e1405d2c7df9ef0d24a9c1bdf3f43128c9c5 CTU-FEE-B0B35APO-Semestral-project/lib-pheripherals/include/logger.h -rw-r--r-- 1.3 KiB
0631e140 — František Boháček refactor: move logger to library 3 years ago
                                                                                
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
36
37
38
39
40
41
42
43
44
#ifndef __LOGGER_H__
#define __LOGGER_H__

#include <stdio.h>

#define DEBUG_PREFIX "[DEBG]"
#define INFO_PREFIX  "[INFO]"
#define WARN_PREFIX  "[WARN]"
#define ERROR_PREFIX "[ERRO]"

typedef enum LogLevel {
  LOG_DEBUG = 1,
  LOG_INFO = 2,
  LOG_WARN = 3,
  LOG_ERROR = 4,
} LogLevel;

typedef struct logger_t logger_t;

struct logger_t {
  FILE *debugFile;
  FILE *infoFile;
  FILE *warningFile;
  FILE *errorFile;

  LogLevel minimalLevel;

  logger_t *childLogger; // Duplicate logs to this logger
};

logger_t logger_create(LogLevel minimalLevel, FILE *debugFile, FILE *infoFile, FILE *warningFile,
                     FILE *errorFile, logger_t *childLogger);

void logger_log(logger_t *logger, LogLevel level, const char *file, const char *function, int line, const char *const message, ...);
void logger_debug(logger_t *logger, const char *file, const char *function,
                  int line, const char *const message, ...);
void logger_info(logger_t *logger, const char *file, const char *function,
                 int line, const char *const message, ...);
void logger_warn(logger_t *logger, const char *file, const char *function,
                 int line, const char *const message, ...);
void logger_error(logger_t *logger, const char *file, const char *function,
                  int line, const char *const message, ...);

#endif //__LOGGER_H__
Do not follow this link