passage en global

This commit is contained in:
Valentin Moguérou 2024-04-16 00:39:53 +02:00
parent bda435c105
commit 793b1dd142
2 changed files with 38 additions and 34 deletions

View File

@ -6,9 +6,7 @@
#include "logger.h" #include "logger.h"
Logger create_logger(char* logpath, LogLevel level) { void create_logger(char* logpath, LogLevel level) {
Logger logger = malloc(sizeof(*logger));
logger->t0 = clock(); logger->t0 = clock();
logger->level = level; logger->level = level;
@ -18,17 +16,15 @@ Logger create_logger(char* logpath, LogLevel level) {
} }
else else
logger->logfile = NULL; logger->logfile = NULL;
return logger;
} }
void destroy_logger(Logger logger) { void destroy_logger() {
if (logger->logfile != NULL) if (logger->logfile != NULL)
fclose(logger->logfile); fclose(logger->logfile);
free(logger); free(logger);
} }
void logprint(Logger logger, LogLevel level, char* str, va_list args) void logprint(LogLevel level, char* str, va_list args)
{ {
clock_t t = clock(); clock_t t = clock();
@ -76,69 +72,74 @@ void logprint(Logger logger, LogLevel level, char* str, va_list args)
} }
void panic(Logger logger, char *str, ...) void panic(char *str, ...)
{ {
va_list args; va_list args;
va_start(args, str); va_start(args, str);
logprint(logger, PANIC, str, args); logprint(PANIC, str, args);
va_end(args); va_end(args);
} }
void fatal(Logger logger, char *str, ...) void fatal(char *str, ...)
{ {
va_list args; va_list args;
va_start(args, str); va_start(args, str);
logprint(logger, FATAL, str, args); logprint(FATAL, str, args);
va_end(args); va_end(args);
} }
void error(Logger logger, char *str, ...) void error(char *str, ...)
{ {
va_list args; va_list args;
va_start(args, str); va_start(args, str);
logprint(logger, ERROR, str, args); logprint(ERROR, str, args);
va_end(args); va_end(args);
} }
void warn(Logger logger, char *str, ...) void warn(char *str, ...)
{ {
va_list args; va_list args;
va_start(args, str); va_start(args, str);
logprint(logger, WARN, str, args); logprint(WARN, str, args);
va_end(args); va_end(args);
} }
void info(Logger logger, char *str, ...) void info(char *str, ...)
{ {
va_list args; va_list args;
va_start(args, str); va_start(args, str);
logprint(logger, INFO, str, args); logprint(INFO, str, args);
va_end(args); va_end(args);
} }
void debug(Logger logger, char *str, ...) void debug(char *str, ...)
{ {
va_list args; va_list args;
va_start(args, str); va_start(args, str);
logprint(logger, DEBUG, str, args); logprint(DEBUG, str, args);
va_end(args); va_end(args);
} }
void trace(Logger logger, char *str, ...) void trace(char *str, ...)
{ {
va_list args; va_list args;
va_start(args, str); va_start(args, str);
logprint(logger, TRACE, str, args); logprint(TRACE, str, args);
va_end(args); va_end(args);
} }
int main() int main()
{ {
Logger logger = create_logger("logger.log", WARN); create_logger("logger.log", TRACE);
warn(logger, "Ceci est un warn de test %f", 1.6*2.5); info("Je me lève.");
trace(logger, "Ceci est un trace de test %f", 1.6*2.5); trace("Il y a un oiseau derrière la fenêtre.");
info("Je sors de ma chambre. Il fait %d degrés.", 18);
warn("Je trébuche.");
info("Je descends les escaliers");
info("Je suis dans la rue");
panic("Je meurs");
destroy_logger(logger); destroy_logger();
} }

View File

@ -25,15 +25,18 @@ struct Logger {
typedef struct Logger* Logger; typedef struct Logger* Logger;
Logger create_logger(char *logpath, LogLevel level); extern Logger logger;
void destroy_logger(Logger logger);
void panic(Logger logger, char *str, ...); void create_logger(char *logpath, LogLevel level);
void fatal(Logger logger, char *str, ...); void destroy_logger();
void error(Logger logger, char *str, ...);
void warn(Logger logger, char *str, ...);
void info(Logger logger, char *str, ...); void panic(char *str, ...);
void debug(Logger logger, char *str, ...); void fatal(char *str, ...);
void trace(Logger logger, char *str, ...); void error(char *str, ...);
void warn(char *str, ...);
void info(char *str, ...);
void debug(char *str, ...);
void trace(char *str, ...);
#endif #endif