#ifndef _LOGUTILS_H
#define _LOGUTILS_H

#define LOG_ERROR 0
#define LOG_WARN 1
#define LOG_OUTPUT 2
#define LOG_VERBOSE 3
#define LOG_VVERBOSE 4
#define LOG_DEBUG 5
#define LOG_VDEBUG 6

extern char *LOGLEVELS[];

// log an error
void log(int level, const char *channel, const char *format, ...);

// log an error as above but also information about errno.
void logerrno(int level, const char *channel, const char *format, ...);

// woould a message at this level be logged?
// returns 0=no.
int logging(int level);

// set the logging level.
void logLevel(int level);
// get the logging level.
int logGetLevel();

// set a new output file
int logSetOutputFile(const char *path);

#endif
