Ajout des fichiers

This commit is contained in:
Valentin Moguérou 2024-04-15 17:40:22 +02:00
parent 11bd0fbddd
commit 706e4ef98f
5 changed files with 157 additions and 0 deletions

1
.gitignore vendored
View File

@ -52,3 +52,4 @@ Module.symvers
Mkfile.old
dkms.conf
logger

10
Makefile Normal file
View File

@ -0,0 +1,10 @@
CC=gcc
FLAGS=-Wall -Wextra -Wpedantic -g
logger: logger.c
$(CC) $(FLAGS) -o $@ $^
.PHONY: clean
clean: logger
rm logger

111
logger.c Normal file
View File

@ -0,0 +1,111 @@
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include "logger.h"
Logger create_logger(char* logpath, LogLevel level) {
Logger logger = malloc(sizeof(*logger));
logger->t0 = clock();
logger->level = level;
if (logpath[0] != '\0')
{
logger->logfile = fopen(logpath, "w");
}
else
logger->logfile = NULL;
return logger;
}
void destroy_logger(Logger logger) {
if (logger->logfile != NULL)
fclose(logger->logfile);
free(logger);
}
void panic(Logger logger, char *str) {
if (PANIC >= logger->level) {
clock_t t = clock() - logger->t0;
fprintf(stderr, "[PANIC][%f]: %s\n", (double)t / CLOCKS_PER_SEC, str);
if (logger->logfile != NULL)
fprintf(logger->logfile, "[PANIC][%f]: %s\n", (double)t / CLOCKS_PER_SEC, str);
}
}
void fatal(Logger logger, char *str) {
if (FATAL >= logger->level) {
clock_t t = clock() - logger->t0;
fprintf(stderr, "[FATAL][%f]: %s\n", (double)t / CLOCKS_PER_SEC, str);
if (logger->logfile != NULL)
fprintf(logger->logfile, "[FATAL][%f]: %s\n", (double)t / CLOCKS_PER_SEC, str);
}
}
void error(Logger logger, char *str) {
if (ERROR >= logger->level) {
clock_t t = clock() - logger->t0;
fprintf(stderr, "[ERROR][%f]: %s\n", (double)t / CLOCKS_PER_SEC, str);
if (logger->logfile != NULL)
fprintf(logger->logfile, "[ERROR][%f]: %s\n", (double)t / CLOCKS_PER_SEC, str);
}
}
void warn(Logger logger, char *str) {
if (WARN >= logger->level) {
clock_t t = clock() - logger->t0;
fprintf(stderr, "[WARN][%f]: %s\n", (double)t / CLOCKS_PER_SEC, str);
if (logger->logfile != NULL)
fprintf(logger->logfile, "[WARN][%f]: %s\n", (double)t / CLOCKS_PER_SEC, str);
}
}
void info(Logger logger, char *str) {
if (INFO >= logger->level) {
clock_t t = clock() - logger->t0;
fprintf(stdout, "[INFO][%f]: %s\n", (double)t / CLOCKS_PER_SEC, str);
if (logger->logfile != NULL)
fprintf(logger->logfile, "[INFO][%f]: %s\n", (double)t / CLOCKS_PER_SEC, str);
}
}
void debug(Logger logger, char *str) {
if (DEBUG >= logger->level) {
clock_t t = clock() - logger->t0;
fprintf(stdout, "[DEBUG][%f]: %s\n", (double)t / CLOCKS_PER_SEC, str);
if (logger->logfile != NULL)
fprintf(logger->logfile, "[DEBUG][%f]: %s\n", (double)t / CLOCKS_PER_SEC, str);
}
}
void trace(Logger logger, char *str) {
if (TRACE >= logger->level) {
clock_t t = clock() - logger->t0;
fprintf(stdout, "[TRACE][%f]: %s\n", (double)t / CLOCKS_PER_SEC, str);
if (logger->logfile != NULL)
fprintf(logger->logfile, "[TRACE][%f]: %s\n", (double)t / CLOCKS_PER_SEC, str);
}
}
int main()
{
Logger logger = create_logger("logger.log", INFO);
trace(logger, "Le vent fait un peu de bruit.");
panic(logger, "On m'a assassiné.");
return 0;
}

34
logger.h Normal file
View File

@ -0,0 +1,34 @@
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
enum LogLevel {
PANIC=6,
FATAL=5,
ERROR=4,
WARN=3,
INFO=2,
DEBUG=1,
TRACE=0
};
typedef enum LogLevel LogLevel;
struct Logger {
clock_t t0;
LogLevel level;
FILE* logfile;
};
typedef struct Logger* Logger;
Logger create_logger(char *logpath, LogLevel level);
void destroy_logger(Logger logger);
void panic(Logger logger, char *str);
void fatal(Logger logger, char *str);
void error(Logger logger, char *str);
void warn(Logger logger, char *str);
void info(Logger logger, char *str);
void debug(Logger logger, char *str);
void trace(Logger logger, char *str);

1
logger.log Normal file
View File

@ -0,0 +1 @@
[PANIC][0.000098]: On m'a assassiné.