00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #include <stdio.h>
00023 #include <stdarg.h>
00024
00025 #ifndef LOG_H
00026 #define LOG_H
00027
00028
00029 #define LOG_DEBUG 0
00030 #define LOG_VERBOSE 1
00031 #define LOG_INFO 2
00032 #define LOG_WARN 3
00033 #define LOG_FORCED_DEBUG 4
00034 #define LOG_ERROR 5
00035 #define LOG_CRITICAL 6
00036 #define LOG_FATAL 7
00037
00038 #define LOG_NUM_LEVELS 8
00039
00040
00041 typedef struct {
00042
00043
00044
00045
00046
00047 void (*prFunc[LOG_NUM_LEVELS]) (FILE *prFP, char *pcFormat, va_list rVArgList);
00048 FILE *prFP[LOG_NUM_LEVELS];
00049 char *prPrefix[LOG_NUM_LEVELS];
00050
00051
00052 int iLogLevelEnabled;
00053 } log_t;
00054
00055
00056
00057
00058 extern log_t rLog;
00059
00060
00061
00062 void
00063 LogDefaultSetup(log_t *log);
00064 void
00065 Log(log_t *prLog, int iLevel, char *pcFmt, ...);
00066 void
00067 LogSetFP(log_t *log, int level, FILE *fp);
00068 void
00069 LogSetFPForAll(log_t *log, FILE *fp);
00070 FILE *
00071 LogGetFP(log_t *prLog, int iLevel);
00072 void
00073 LogMute(log_t *log, int level);
00074 void
00075 LogMuteAll(log_t *log);
00076 void
00077 LogFuncOverwrite(log_t *prLog, int iLevel,
00078 void (*Func) (FILE *prFP, char *pcFormat, va_list rVArgList));
00079
00080
00081 #endif