#ifndef LOGHANDLER_H #define LOGHANDLER_H /* Default config */ #define DEFAULT_LOGDEVICE "/tmp/loghandler.log" #define DEFAULT_LOGLEVEL LOG_NORMAL #define DEFAULT_LOGCLASS MAIN_LOG #define DEFAULT_LOGFORMAT SHOW_ALL /* Defs */ #define LOGHANDLER_VERSION 0.2.4 #define LOGHANDLER_DATE __DATE__ #define LOGMSG_MAX 256 #define LOGHANDLE_MAX 5 /* Log format */ #define SHOW_YEAR 1 #define SHOW_DATE 2 #define SHOW_TIME 4 #define SHOW_CLASS 8 #define SHOW_LEVEL 16 #define SHOW_ID 32 #define SHOW_ALL 255 /* Log event */ #define LOG_MARK 0 // Will always be logged #define LOG_FATAL 1 // Application can not continue #define LOG_ERROR 2 // Serious error #define LOG_WARNING 3 // May cause problems #define LOG_NORMAL 4 // Normal production #define LOG_NOTICE 5 // May be of interest #define LOG_INFO 6 // Additional information #define LOG_VERBOSE 7 // May cause lots of output /* Debug event */ #define D_CHECK 8 // Check point #define D_LOGIC 9 // Logic condition #define D_ERR 10 // Error #define D_WARN 11 // Warning #define D_FUNC 12 // Entering or leaving function #define D_VAR 13 // Varible values #define D_IO 14 // Input/Output to file or command #define D_TRACE 15 // Heavy tracing /* Log class */ #define DEBUG_LOG 8 // For developing #define MAIN_LOG 16 // General application #define USER_LOG 32 // User related #define SYS_LOG 64 // System related #define NET_LOG 128 // Network related #define GLOBAL_LOG 241 // All logs except debug /* Recorders */ extern void logf(int logcode, const char *msg, ...); extern void debugf(int logcode, const char *msg, ...); extern void loghandler(int loglevel, int logclass, const char *msg, ...); /* Control */ extern int loghandler_init(int id, const char *logdevice, int logclass, int loglevel, int logformat); extern int loghandler_init(int id, const char *logdevice); extern int loghandler_setlevel(int id, int loglevel); extern int loghandler_getlevel(int id); extern int loghandler_setclass(int id, int logclass); extern int loghandler_getclass(int id); #endif