diff --git a/logHelper.c b/logHelper.c new file mode 100644 index 0000000..be3a773 --- /dev/null +++ b/logHelper.c @@ -0,0 +1,76 @@ +#include +#include +#include +#include +#include "logHelper.h" + +FILE *log_file=NULL; + +int initialise_logger(){ + time_t raw_time; + struct tm *pdh; + time(&raw_time); + pdh = localtime(&raw_time); + char name[32]; + sprintf(name, "%04d-%02d-%02d.log", pdh->tm_year+1900, pdh->tm_mon+1, pdh->tm_mday); + log_file=fopen(name, "a"); + + if(log_file==NULL) //fichier innexistant + { + log_file=fopen(name,"w+"); + + if(log_file==NULL) { //Le prog n'a pas les droits en écriture + printf("\n****************************************************************\nATTENTION ! Le fichier de log ne peut être écris, aucune info ne sera enregistré !\n****************************************************************\n"); + return -1; + } + } + + return 0; +} + +void stop_logger() {fclose(log_file);} + +void addLogInfo(char *mess){ + time_t now; + struct tm* tm_info; + char buffer[12]; + + initialise_logger(); + + time(&now); + tm_info = localtime(&now); + strftime(buffer, 12, "%H:%M:%S", tm_info); + fprintf(log_file,"[INFO][%s] %s\n", buffer, mess); + + stop_logger(); +} + +void addLogWarn(char *mess){ + time_t now; + struct tm* tm_info; + char buffer[12]; + + initialise_logger(); + + time(&now); + tm_info = localtime(&now); + strftime(buffer, 12, "%H:%M:%S", tm_info); + fprintf(log_file,"[WARN][%s] %s\n", buffer, mess); + + stop_logger(); +} + +void addLogCritical(char *mess){ + time_t now; + struct tm* tm_info; + char buffer[12]; + + initialise_logger(); + + time(&now); + tm_info = localtime(&now); + strftime(buffer, 12, "%H:%M:%S", tm_info); + fprintf(log_file,"[CRITICAL][%s] %s\n", buffer, mess); + + stop_logger(); +} diff --git a/logHelper.h b/logHelper.h new file mode 100644 index 0000000..7b574b8 --- /dev/null +++ b/logHelper.h @@ -0,0 +1,11 @@ +#ifndef LOGGER_H_ +#define LOGGER_H_ + +int initialise_logger(); //Prépare le logger à écrire dans les fichiers de logs +void stop_logger(); + +void addLogInfo(char *mess); //Ajoute une entrée dans le fichier de log de type INFO +void addLogWarn(char *mess); +void addLogCritical(char *mess); //Ajoute une entrée dans le fichier de log de type CRITICAL + +#endif