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 #include "time/gru_time_utils.h"
00033
00034 #ifdef __cplusplus
00035 extern "C" {
00036 #endif
00037
00038 typedef enum log_level_t_ {
00039 GRU_TRACE,
00040 GRU_DEBUG,
00041 GRU_INFO,
00042 GRU_WARNING,
00043 GRU_ERROR,
00044 GRU_FATAL,
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_minimum(log_level_t minimum);
00081
00086 gru_export log_level_t gru_logger_get_minimum();
00087
00093 gru_export void gru_logger_default_printer(log_level_t level, const char *msg, ...);
00094
00101 gru_export void
00102 gru_logger_default_do_print(log_level_t level, const char *msg, va_list ap);
00103
00104
00110 gru_export void gru_logger_timed_printer(log_level_t level, const char *msg, ...);
00111
00118 gru_export void gru_logger_timed_do_print(log_level_t level, const char *msg, va_list ap);
00119
00120 #ifdef __cplusplus
00121 }
00122 #endif
00123
00124
00125 #endif