62 lines
1.5 KiB
C
62 lines
1.5 KiB
C
/*
|
|
* Copyright 2025 Oleg Borodin <onborodin@gmail.com>
|
|
*
|
|
*/
|
|
|
|
#include <stdlib.h>
|
|
#include <stdarg.h>
|
|
#include <stdio.h>
|
|
#include <string.h>
|
|
#include <fcntl.h>
|
|
#include <unistd.h>
|
|
|
|
typedef struct {
|
|
FILE* logout;
|
|
} logger_t;
|
|
|
|
static logger_t logger;
|
|
|
|
int logger_init(void) {
|
|
//int fd = fileno(stdout);
|
|
//int newfd = dup(fd);
|
|
//logger.logout = fdopen(newfd, "w");
|
|
logger.logout = stdout;
|
|
return 0;
|
|
}
|
|
|
|
void logger_dprintf(char* message, ...) {
|
|
fprintf(logger.logout, "debug: ");
|
|
va_list argptr;
|
|
va_start(argptr, message);
|
|
vfprintf(logger.logout, message, argptr);
|
|
va_end(argptr);
|
|
fprintf(logger.logout, "\n");
|
|
}
|
|
|
|
void logger_iprintf(char* message, ...) {
|
|
fprintf(logger.logout, "warning: ");
|
|
va_list argptr;
|
|
va_start(argptr, message);
|
|
vfprintf(logger.logout, message, argptr);
|
|
va_end(argptr);
|
|
fprintf(logger.logout, "\n");
|
|
}
|
|
|
|
void logger_wprintf(char* message, ...) {
|
|
fprintf(logger.logout, "warning: ");
|
|
va_list argptr;
|
|
va_start(argptr, message);
|
|
vfprintf(logger.logout, message, argptr);
|
|
va_end(argptr);
|
|
fprintf(logger.logout, "\n");
|
|
}
|
|
|
|
void logger_eprintf(char* message, ...) {
|
|
fprintf(logger.logout, "error: ");
|
|
va_list argptr;
|
|
va_start(argptr, message);
|
|
vfprintf(logger.logout, message, argptr);
|
|
va_end(argptr);
|
|
fprintf(logger.logout, "\n");
|
|
}
|