GRU - Generic Reusable Utilities
Loading...
Searching...
No Matches
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
35extern "C" {
36#endif
37
38typedef enum log_level_t_ {
46
47typedef void (*logger_t)(log_level_t level, const char *message, ...);
48
55
63
69
75
81
87
93gru_export void gru_logger_default_printer(log_level_t level, const char *msg, ...);
94
101gru_export void
102 gru_logger_default_do_print(log_level_t level, const char *msg, va_list ap);
103
104
110gru_export void gru_logger_timed_printer(log_level_t level, const char *msg, ...);
111
118gru_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.: whether log level 1 is greater or equal to l2, thus allowing to log)
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