diff options
Diffstat (limited to 'src/log.c')
-rw-r--r-- | src/log.c | 81 |
1 files changed, 73 insertions, 8 deletions
@@ -16,9 +16,12 @@ * ===================================================================================== */ +#define _GNU_SOURCE /* ##### HEADER FILE INCLUDES ################################################### */ +#include <stdarg.h> #include <stdlib.h> +#include <stdio.h> #include <time.h> @@ -27,17 +30,31 @@ /* * === FUNCTION ====================================================================== - * Name: debug - * Description: Outputs debugging information to stdout + * Name: print_date + * Description: Prints the current date/time to stdout without a newline * ===================================================================================== */ -int debug(char msg[]) { - /* :TODO:10/27/2022 11:48:32 AM:: Fix time get */ - +void print_date() { time_t cur_time = time(NULL); - struct tm t = *localtime(&t); + struct tm t = *localtime(&cur_time); - printf("now: %d-%02d-%02d %02d:%02d:%02d\n", t.tm_year + 1900, t.tm_mon + 1, t.tm_mday, t.tm_hour, t.tm_min, t.tm_sec); + printf("%d-%02d-%02d %02d:%02d:%02d", t.tm_year + 1900, t.tm_mon + 1, t.tm_mday, t.tm_hour, t.tm_min, t.tm_sec); +} /* ----- end of function print_date ----- */ +/* + * === FUNCTION ====================================================================== + * Name: debug + * Description: Outputs debugging information to stdout + * ===================================================================================== + */ +int debug(char msg[], ...) { + va_list args; + print_date(); + va_start(args, msg); + char *fmt_string; + asprintf(&fmt_string, msg, args); + printf(" \033[34mDEBUG\033[0m %s\n", fmt_string); + //free(fmt_string); + va_end(args); return 0; } @@ -48,6 +65,54 @@ int debug(char msg[]) { * Description: Outputs informational messages to stdout * ===================================================================================== */ -int info(char msg[]) { +int info(char msg[], ...) { + va_list args; + print_date(); + va_start(args, msg); + char *fmt_string; + asprintf(&fmt_string, msg, args); + printf(" \033[32mINFO\033[0m %s\n", fmt_string); + //free(fmt_string); + va_end(args); return 0; } /* ----- end of function info ----- */ + + +/* + * === FUNCTION ====================================================================== + * Name: warning + * Description: Outputs a warning message to stdout + * ===================================================================================== + */ +int warning(char msg[], ...) { + va_list args; + + print_date(); + va_start(args, msg); + char *fmt_string; + asprintf(&fmt_string, msg, args); + printf(" \033[33mWARNING\033[0m %s\n", fmt_string); + //free(fmt_string); + va_end(args); + return 0; +} /* ----- end of function warning ----- */ + + +/* + * === FUNCTION ====================================================================== + * Name: error + * Description: Outputs an error to stdout and stderr + * ===================================================================================== + */ +int error(char msg[], ...) { + va_list args; + print_date(); + va_start(args, msg); + char *fmt_string; + asprintf(&fmt_string, msg, args); + printf(" \033[31mERROR\033[0m %s\n", fmt_string); + fprintf(stderr, " \033[31mERROR\033[0m %s\n", fmt_string); + //free(fmt_string); + va_end(args); + return 0; +} /* ----- end of function error ----- */ |