Commons Library  1.7.0
log.h
Ir a la documentación de este archivo.
1 /*
2  * Copyright (C) 2012 Sistemas Operativos - UTN FRBA. All rights reserved.
3  *
4  * This program is free software: you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License as published by
6  * the Free Software Foundation, either version 3 of the License, or
7  * (at your option) any later version.
8  * This program is distributed in the hope that it will be useful,
9  * but WITHOUT ANY WARRANTY; without even the implied warranty of
10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11  * GNU General Public License for more details.
12  *
13  * You should have received a copy of the GNU General Public License
14  * along with this program. If not, see <http://www.gnu.org/licenses/>.
15  */
16 #ifndef LOG_H_
17 #define LOG_H_
18 
19  #include <stdio.h>
20  #include <stdbool.h>
21  #include <sys/types.h>
22 
28  typedef enum {
35 
40  typedef struct {
41  FILE* file;
44  char *program_name;
45  pid_t pid;
46  }t_log;
47 
64  t_log* log_create(char* file, char *process_name, bool is_active_console, t_log_level level);
65 
69  void log_destroy(t_log* logger);
70 
76  void log_trace(t_log* logger, const char* message, ...) __attribute__((format(printf, 2, 3)));
77 
83  void log_debug(t_log* logger, const char* message, ...) __attribute__((format(printf, 2, 3)));
84 
90  void log_info(t_log* logger, const char* message, ...) __attribute__((format(printf, 2, 3)));
91 
97  void log_warning(t_log* logger, const char* message, ...) __attribute__((format(printf, 2, 3)));
98 
104  void log_error(t_log* logger, const char* message, ...) __attribute__((format(printf, 2, 3)));
105 
112 
119 
120 #endif /* LOG_H_ */
void log_warning(t_log *logger, const char *message,...)
Loguea un mensaje con el siguiente formato [WARNING] hh:mm:ss:mmmm PROCESS_NAME/(PID:TID): MESSAGE
char * log_level_as_string(t_log_level level)
Convierte un t_log_level a su representacion en string.
t_log * log_create(char *file, char *process_name, bool is_active_console, t_log_level level)
Crea una instancia de logger.
t_log_level log_level_from_string(char *level)
Convierte un string a su representacion en t_log_level.
void log_destroy(t_log *logger)
Destruye una instancia de logger.
void log_trace(t_log *logger, const char *message,...)
Loguea un mensaje con el siguiente formato [TRACE] hh:mm:ss:mmmm PROCESS_NAME/(PID:TID): MESSAGE
void log_info(t_log *logger, const char *message,...)
Loguea un mensaje con el siguiente formato [INFO] hh:mm:ss:mmmm PROCESS_NAME/(PID:TID): MESSAGE
t_log_level
Definition: log.h:28
@ LOG_LEVEL_DEBUG
Loguea solo mensajes de log_debug en adelante.
Definition: log.h:30
@ LOG_LEVEL_ERROR
Loguea solo mensajes de log_error.
Definition: log.h:33
@ LOG_LEVEL_WARNING
Loguea solo mensajes de log_warning en adelante.
Definition: log.h:32
@ LOG_LEVEL_TRACE
Loguea todos los mensajes.
Definition: log.h:29
@ LOG_LEVEL_INFO
Loguea solo mensajes de log_info en adelante.
Definition: log.h:31
void log_error(t_log *logger, const char *message,...)
Loguea un mensaje con el siguiente formato [ERROR] hh:mm:ss:mmmm PROCESS_NAME/(PID:TID): MESSAGE
void log_debug(t_log *logger, const char *message,...)
Loguea un mensaje con el siguiente formato [DEBUG] hh:mm:ss:mmmm PROCESS_NAME/(PID:TID): MESSAGE
Manejo de logs. Inicializar con log_create()
Definition: log.h:40
t_log_level detail
Definition: log.h:43
pid_t pid
Definition: log.h:45
bool is_active_console
Definition: log.h:42
FILE * file
Definition: log.h:41
char * program_name
Definition: log.h:44