AmendHub

Download

ftech

/

Logger

/

logger.h

 

(View History)

Francois Techene   Added Info log level Latest amendment: 2 on 2025-04-08

1 /* logger.h
2 *
3 * Copyright 2025 Francois Techene
4 *
5 * This program is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation, either version 3 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program. If not, see <http://www.gnu.org/licenses/>.
17 *
18 * SPDX-License-Identifier: GPL-3.0-or-later
19 */
20
21 #ifndef LOGGER_H
22 #define LOGGER_H
23
24 typedef enum {
25 NONE_LEVEL = 0,
26 ERROR_LEVEL,
27 WARNING_LEVEL,
28 INFO_LEVEL,
29 DEBUG_LEVEL
30 } LogLevel;
31
32 typedef enum {
33 NONE_OUT = 0,
34 CONSOLE_OUT,
35 FILE_OUT
36
37 } LogOutputMethod;
38
39
40
41 typedef struct _Logger {
42
43 void (*log) (char* format, ...);
44 void (*debug) (char* format, ...);
45 void (*info) (char* format, ...);
46 void (*warn) (char* format, ...);
47 void (*error) (char* format, ...);
48
49 char* file_path;
50 int output_method;
51 int log_level;
52
53
54 } Logger;
55
56 extern Logger logger;
57
58 void init_logger(LogLevel level,
59 LogOutputMethod out,
60 char* file_path);
61
62 void log_debug(char* format, ...);
63 void log_info(char* format, ...);
64 void log_warn(char* format, ...);
65 void log_error(char* format, ...);
66
67 void log_to_none(char* format, ...);
68 void log_to_console(char* format, ...);
69 void log_to_file(char* format, ...);
70
71
72 #endif