00001 #ifndef _LOGGING_H_
00002 #define _LOGGING_H_
00003
00004 #include "grok.h"
00005
00006 #define LOG_PREDICATE (1 << 0)
00007 #define LOG_COMPILE (1 << 1)
00008 #define LOG_EXEC (1 << 2)
00009 #define LOG_REGEXPAND (1 << 3)
00010 #define LOG_PATTERNS (1 << 4)
00011 #define LOG_MATCH (1 << 5)
00012 #define LOG_CAPTURE (1 << 6)
00013 #define LOG_PROGRAM (1 << 7)
00014 #define LOG_PROGRAMINPUT (1 << 8)
00015 #define LOG_REACTION (1 << 9)
00016 #define LOG_DISCOVER (1 << 10)
00017
00018 #define LOG_ALL (~0)
00019
00020 #ifdef NOLOGGING
00021
00022 # define grok_log(obj, level, format, args...) { }
00023 #else
00024
00025 void _grok_log(int level, int indent, const char *format, ...);
00026
00027
00028 # define grok_log(obj, level, format, args...) \
00029 if ((obj)->logmask & level) \
00030 _grok_log(level, (obj)->logdepth, "[%s:%d] " format, \
00031 __FUNCTION__, __LINE__, ## args)
00032
00033 #endif
00034
00035 #endif