GRU - Generic Reusable Utilities
gru_logger.h
Go to the documentation of this file.
1 /*
2  Copyright 2016 Otavio Rodolfo Piske
3 
4  Licensed under the Apache License, Version 2.0 (the "License");
5  you may not use this file except in compliance with the License.
6  You may obtain a copy of the License at
7 
8  http://www.apache.org/licenses/LICENSE-2.0
9 
10  Unless required by applicable law or agreed to in writing, software
11  distributed under the License is distributed on an "AS IS" BASIS,
12  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  See the License for the specific language governing permissions and
14  limitations under the License.
15  */
16 
17 #ifndef GRU_LOGGER_H_
18 #define GRU_LOGGER_H_
19 
20 #include <stdio.h>
21 #include <stdlib.h>
22 #include <string.h>
23 
24 #if !defined(_WIN32) && !defined(_WIN64)
25 #include <strings.h>
26 #endif
27 
28 #include <stdarg.h>
29 #include <stdbool.h>
30 
31 #include "common/gru_base.h"
32 #include "time/gru_time_utils.h"
33 
34 #ifdef __cplusplus
35 extern "C" {
36 #endif
37 
38 typedef enum log_level_t_ {
46 
47 typedef void (*logger_t)(log_level_t level, const char *message, ...);
48 
55 
63 
69 
75 
81 
87 
93 gru_export void gru_logger_default_printer(log_level_t level, const char *msg, ...);
94 
101 gru_export void
102  gru_logger_default_do_print(log_level_t level, const char *msg, va_list ap);
103 
104 
110 gru_export void gru_logger_timed_printer(log_level_t level, const char *msg, ...);
111 
118 gru_export void gru_logger_timed_do_print(log_level_t level, const char *msg, va_list ap);
119 
120 #ifdef __cplusplus
121 }
122 #endif
123 
124 // GRU_LOGGER_H_
125 #endif
gru_export void gru_logger_set_minimum(log_level_t minimum)
Sets the minimum log level.
Definition: gru_logger.c:29
void(* logger_t)(log_level_t level, const char *message,...)
Definition: gru_logger.h:47
gru_export bool gru_logger_can_log(log_level_t l1)
Whether can log (ie.
Definition: gru_logger.c:37
enum log_level_t_ log_level_t
gru_export void gru_logger_timed_printer(log_level_t level, const char *msg,...)
A simple logger that logs to stderr including the time when the even happened.
Definition: gru_logger.c:118
gru_export void gru_logger_timed_do_print(log_level_t level, const char *msg, va_list ap)
Utility printing function that can be used by implementations of the timed logger printer.
Definition: gru_logger.c:131
gru_export logger_t gru_logger_get(void)
Gets the logger.
Definition: gru_logger.c:25
gru_export void gru_logger_set(logger_t logger)
Sets the logger.
Definition: gru_logger.c:21
gru_export void gru_logger_default_printer(log_level_t level, const char *msg,...)
Default logger that logs to stdout.
Definition: gru_logger.c:74
gru_export log_level_t gru_logger_get_level(const char *str)
Gets the log level from an input string.
Definition: gru_logger.c:45
gru_export void gru_logger_default_do_print(log_level_t level, const char *msg, va_list ap)
Utility printing function that can be used by implementations of the logger printer.
Definition: gru_logger.c:86
log_level_t_
Definition: gru_logger.h:38
@ GRU_TRACE
Definition: gru_logger.h:39
@ GRU_ERROR
Definition: gru_logger.h:43
@ GRU_FATAL
Definition: gru_logger.h:44
@ GRU_WARNING
Definition: gru_logger.h:42
@ GRU_DEBUG
Definition: gru_logger.h:40
@ GRU_INFO
Definition: gru_logger.h:41
gru_export log_level_t gru_logger_get_minimum()
Gets the minimum log level.
Definition: gru_logger.c:33
#define gru_export
Definition: gru_portable.h:19