00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef GRU_LOGGER_H_
00018 #define GRU_LOGGER_H_
00019
00020 #include <stdio.h>
00021 #include <stdlib.h>
00022 #include <string.h>
00023
00024 #if !defined(_WIN32) && !defined(_WIN64)
00025 #include <strings.h>
00026 #endif
00027
00028 #include <stdarg.h>
00029 #include <stdbool.h>
00030
00031 #include "common/gru_base.h"
00032
00033 #ifdef __cplusplus
00034 extern "C" {
00035 #endif
00036
00037 typedef enum log_level_t_ {
00038 TRACE = 0,
00039 DEBUG = 1,
00040 INFO = 2,
00041 STAT = 3,
00042 WARNING = 4,
00043 ERROR = 5,
00044 FATAL = 6,
00045 } log_level_t;
00046
00047 typedef void (*logger_t)(log_level_t level, const char *message, ...);
00048
00054 gru_export log_level_t gru_logger_get_level(const char *str);
00055
00062 gru_export bool gru_logger_can_log(log_level_t l1);
00063
00068 gru_export void gru_logger_set(logger_t logger);
00069
00074 gru_export logger_t gru_logger_get(void);
00075
00080 gru_export void gru_logger_set_mininum(log_level_t minimum);
00081
00086 gru_export log_level_t gru_logger_get_mininum();
00087
00093 gru_export void gru_logger_default_printer(log_level_t level, const char *msg, ...);
00094
00101 gru_export void gru_logger_default_do_print(
00102 log_level_t level, const char *msg, va_list ap);
00103
00104 #ifdef __cplusplus
00105 }
00106 #endif
00107
00108
00109 #endif