#ifndef H_FRACTAL_LOGGING
#define H_FRACTAL_LOGGING
#include <inttypes.h>
#include <math.h>
#include <pthread.h>
#include <stdarg.h>
#include <stdio.h>
#include <time.h>
enum { LOG_TRACE, LOG_DEBUG, LOG_POSTS, LOG_ALERT, LOG_ERROR, LOG_FATAL };
#define log_trace(...) logging_log( LOG_TRACE, __FILE__, __LINE__, __VA_ARGS__ )
#define log_debug(...) logging_log( LOG_DEBUG, __FILE__, __LINE__, __VA_ARGS__ )
#define log_info(...) logging_log( LOG_POSTS, __FILE__, __LINE__, __VA_ARGS__ )
#define log_warn(...) logging_log( LOG_ALERT, __FILE__, __LINE__, __VA_ARGS__ )
#define log_error(...) logging_log( LOG_ERROR, __FILE__, __LINE__, __VA_ARGS__ )
#define log_fatal(...) logging_log( LOG_FATAL, __FILE__, __LINE__, __VA_ARGS__ )
void logging_set_level( int level );
void logging_log( int level, const char *src, int line, char *message, ... );
#endif