Oyster Harvest Area Closure Analysis 0.1
Prediction and analysis of NSW oyster harvest area closures.
Loading...
Searching...
No Matches
log.h
Go to the documentation of this file.
1
8#ifndef LOG_H
9#define LOG_H
10
11#include <stdio.h>
12#include <stdarg.h>
13#include <stdbool.h>
14#include <time.h>
15
16#define LOG_VERSION "0.1.0"
17
18typedef struct {
19 va_list ap;
20 const char *fmt;
21 const char *file;
22 struct tm *time;
23 void *udata;
24 int line;
25 int level;
26} Log_Event;
27
28typedef void (*log_LogFn)(Log_Event *ev);
29typedef void (*log_LockFn)(bool lock, void *udata);
30
32
33#define log_trace(...) log_log(LOG_TRACE, __FILE__, __LINE__, __VA_ARGS__)
34#define log_debug(...) log_log(LOG_DEBUG, __FILE__, __LINE__, __VA_ARGS__)
35#define log_info(...) log_log(LOG_INFO, __FILE__, __LINE__, __VA_ARGS__)
36#define log_warn(...) log_log(LOG_WARN, __FILE__, __LINE__, __VA_ARGS__)
37#define log_error(...) log_log(LOG_ERROR, __FILE__, __LINE__, __VA_ARGS__)
38#define log_fatal(...) log_log(LOG_FATAL, __FILE__, __LINE__, __VA_ARGS__)
39
40const char* log_level_string(int level);
41void log_set_lock(log_LockFn fn, void *udata);
42void log_set_level(int level);
43void log_set_quiet(bool enable);
44int log_add_callback(log_LogFn fn, void *udata, int level);
45int log_add_fp(FILE *fp, int level);
46
47void log_log(int level, const char *file, int line, const char *fmt, ...);
48
49#endif
void * udata
Definition: log.c:34
log_LockFn lock
Definition: log.c:35
int level
Definition: log.c:36
const char * log_level_string(int level)
Definition: log.c:92
void log_set_lock(log_LockFn fn, void *udata)
Definition: log.c:97
void(* log_LogFn)(Log_Event *ev)
Definition: log.h:28
int log_add_callback(log_LogFn fn, void *udata, int level)
Definition: log.c:113
void log_set_quiet(bool enable)
Definition: log.c:108
void log_log(int level, const char *file, int line, const char *fmt,...)
Definition: log.c:138
@ LOG_ERROR
Definition: log.h:31
@ LOG_TRACE
Definition: log.h:31
@ LOG_INFO
Definition: log.h:31
@ LOG_DEBUG
Definition: log.h:31
@ LOG_FATAL
Definition: log.h:31
@ LOG_WARN
Definition: log.h:31
void(* log_LockFn)(bool lock, void *udata)
Definition: log.h:29
void log_set_level(int level)
Definition: log.c:103
int log_add_fp(FILE *fp, int level)
Definition: log.c:124
Definition: log.h:18
const char * file
Definition: log.h:21
int level
Definition: log.h:25
const char * fmt
Definition: log.h:20
va_list ap
Definition: log.h:19
void * udata
Definition: log.h:23
int line
Definition: log.h:24
struct tm * time
Definition: log.h:22