Added logging system, but still not used
This commit is contained in:
parent
af34a9c260
commit
6eaa10e3d3
@ -67,9 +67,6 @@ int main(int argc, char** argv) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// TODO: Parse commands from the command line
|
// TODO: Parse commands from the command line
|
||||||
char* container;
|
|
||||||
get_oldest_container(&container);
|
|
||||||
printf("Oldest container: %s\n", container);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int command_help(int argc, char* argv[]) {
|
int command_help(int argc, char* argv[]) {
|
||||||
|
58
src/utils.c
58
src/utils.c
@ -14,6 +14,64 @@
|
|||||||
|
|
||||||
char _ERROR_BUFFER[ERROR_BUFFER_SIZE];
|
char _ERROR_BUFFER[ERROR_BUFFER_SIZE];
|
||||||
|
|
||||||
|
log_level_t _LOG_LEVEL = LOG_LEVEL_INFO;
|
||||||
|
|
||||||
|
void set_log_level(log_level_t level) {
|
||||||
|
_LOG_LEVEL = level;
|
||||||
|
}
|
||||||
|
|
||||||
|
void log_message(log_level_t level, const char* format, ...) {
|
||||||
|
// Check that the log level is high enough
|
||||||
|
if (level < _LOG_LEVEL)
|
||||||
|
return;
|
||||||
|
|
||||||
|
// Convert the log level to a color and a string
|
||||||
|
const char* color_str;
|
||||||
|
const char* level_str;
|
||||||
|
|
||||||
|
switch (level) {
|
||||||
|
case LOG_LEVEL_DEBUG:
|
||||||
|
color_str = "\033[0m";
|
||||||
|
level_str = "DEBUG";
|
||||||
|
break;
|
||||||
|
case LOG_LEVEL_INFO:
|
||||||
|
color_str = "\033[36m";
|
||||||
|
level_str = "INFO";
|
||||||
|
break;
|
||||||
|
case LOG_LEVEL_WARNING:
|
||||||
|
color_str = "\033[33m";
|
||||||
|
level_str = "WARNING";
|
||||||
|
break;
|
||||||
|
case LOG_LEVEL_ERROR:
|
||||||
|
color_str = "\033[31m";
|
||||||
|
level_str = "ERROR";
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
color_str = "\033[0m";
|
||||||
|
level_str = "UNKNOWN";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get the current time
|
||||||
|
time_t t = time(NULL);
|
||||||
|
struct tm* tm = localtime(&t);
|
||||||
|
|
||||||
|
// Print the log message
|
||||||
|
fprintf(stderr, "%s[%02d/%02d/%04d %02d:%02d:%02d - %s]\033[0m ", color_str, tm->tm_mday, tm->tm_mon + 1, tm->tm_year + 1900, tm->tm_hour, tm->tm_min, tm->tm_sec, level_str);
|
||||||
|
|
||||||
|
va_list args;
|
||||||
|
va_start(args, format);
|
||||||
|
|
||||||
|
vfprintf(stderr, format, args);
|
||||||
|
|
||||||
|
va_end(args);
|
||||||
|
|
||||||
|
fprintf(stderr, "\n");
|
||||||
|
|
||||||
|
// Flush the standard error stream
|
||||||
|
fflush(stderr);
|
||||||
|
}
|
||||||
|
|
||||||
result_t success(void) {
|
result_t success(void) {
|
||||||
return EXIT_SUCCESS;
|
return EXIT_SUCCESS;
|
||||||
}
|
}
|
||||||
|
30
src/utils.h
30
src/utils.h
@ -6,10 +6,40 @@
|
|||||||
|
|
||||||
#define ERROR_BUFFER_SIZE 4096
|
#define ERROR_BUFFER_SIZE 4096
|
||||||
|
|
||||||
|
/// @brief The global error buffer. It can be accessed using the error() function.
|
||||||
extern char _ERROR_BUFFER[];
|
extern char _ERROR_BUFFER[];
|
||||||
|
|
||||||
|
/// @brief The level of importance of a log message.
|
||||||
|
typedef enum {
|
||||||
|
/// @brief A debug message. These messages are used for debugging purposes, and are not meant to be seen by the user.
|
||||||
|
LOG_LEVEL_DEBUG,
|
||||||
|
|
||||||
|
/// @brief An info message. These messages are used to inform the user about the progress of the program.
|
||||||
|
LOG_LEVEL_INFO,
|
||||||
|
|
||||||
|
/// @brief A warning message. These messages are used to warn the user about potential issues.
|
||||||
|
LOG_LEVEL_WARNING,
|
||||||
|
|
||||||
|
/// @brief An error message. These messages are used to inform the user that a critical error has occurred.
|
||||||
|
LOG_LEVEL_ERROR,
|
||||||
|
} log_level_t;
|
||||||
|
|
||||||
|
/// @brief The minimum log level of the program.
|
||||||
|
extern log_level_t _LOG_LEVEL;
|
||||||
|
|
||||||
|
/// @brief The result of an operation.
|
||||||
typedef int result_t;
|
typedef int result_t;
|
||||||
|
|
||||||
|
/// @brief Sets the log level of the program.
|
||||||
|
/// @param level The log level to set.
|
||||||
|
void set_log_level(log_level_t level);
|
||||||
|
|
||||||
|
/// @brief Logs a message with the given level, and the given format string and arguments.
|
||||||
|
/// @param level The level of the message.
|
||||||
|
/// @param format The format string to use for the message.
|
||||||
|
/// @param ... The arguments to use for the format string.
|
||||||
|
void log_message(log_level_t level, const char* format, ...);
|
||||||
|
|
||||||
/// @brief Returns a generic success result.
|
/// @brief Returns a generic success result.
|
||||||
/// @return The success result.
|
/// @return The success result.
|
||||||
result_t success(void);
|
result_t success(void);
|
||||||
|
Loading…
Reference in New Issue
Block a user