aboutsummaryrefslogtreecommitdiff
path: root/src/log.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/log.c')
-rw-r--r--src/log.c81
1 files changed, 73 insertions, 8 deletions
diff --git a/src/log.c b/src/log.c
index c6e2af2..1d8e50b 100644
--- a/src/log.c
+++ b/src/log.c
@@ -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 ----- */