00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef _LOGGER_H_
00026 #define _LOGGER_H_
00027 #include <stdio.h>
00028 #include <stdarg.h>
00029
00030 #if defined(_WIN32) || defined(__declspec)
00031
00032 # ifdef COMPILE_DLL
00033 # define LOGGER_STORAGE_TYPE __declspec(dllexport)
00034 # else
00035 # define LOGGER_STORAGE_TYPE __declspec(dllimport)
00036 # endif
00037
00038 #else // _WIN32 || __declspec
00039 # define LOGGER_STORAGE_TYPE extern
00040 #endif // _WIN32 || __declspec
00041
00042
00046 LOGGER_STORAGE_TYPE void log_error(char *format, ...);
00047
00051 LOGGER_STORAGE_TYPE void log_debug(char *message, ...);
00052
00053 LOGGER_STORAGE_TYPE void log_warning(char *message, ...);
00054
00055 #ifndef __GNUC__
00056
00057 #ifdef DEBUG
00058 #define LOG_DEBUG log_debug
00059 #else
00060 #define LOG_DEBUG
00061 #endif
00062
00063
00064 #ifdef WARNINGS
00065 #define LOG_WARNING log_warning
00066 #else
00067 #define LOG_WARNING
00068 #endif
00069
00070 #define LOG_ERROR log_error
00071
00072 #else
00073
00074 #ifdef DEBUG
00075 #define LOG_DEBUG(format, ...) fprintf(stderr, "DEBUG: %s : %s: " format "\n", \
00076 __FILE__, __FUNCTION__, ## __VA_ARGS__)
00077 #else
00078 #define LOG_DEBUG
00079 #endif
00080
00081
00082 #ifdef WARNINGS
00083 #define LOG_WARNING(format, ...) fprintf(stderr, "WARN: %s : %s: " format "\n", \
00084 __FILE__, __FUNCTION__, ## __VA_ARGS__)
00085 #else
00086 #define LOG_WARNING
00087 #endif
00088
00089
00090 #define LOG_ERROR(format, ...) fprintf(stderr, "ERROR: %s : %s: " format "\n", \
00091 __FILE__, __FUNCTION__, ## __VA_ARGS__)
00092
00093 #endif
00094
00095 #define PRINT_STATEMENT(a, s) fprintf(stderr, "STMTDUMP: %s (%s, %s, %s, %s)\n", (a), s->context.literal, s->predicate.literal, s->subject.literal, s->object.literal)
00096
00097 #endif
00098 #ifdef DMALLOC
00099 #include<dmalloc.h>
00100 #endif