diff --git a/src/core/basalt_logger.cpp b/src/core/basalt_logger.cpp index f343803..e5394d9 100644 --- a/src/core/basalt_logger.cpp +++ b/src/core/basalt_logger.cpp @@ -38,6 +38,16 @@ void terminate_logger() logger_state.initialized = 0x00; } +void logger_set_global_mask(LOG_LEVEL mask) +{ logger_state.global_mask = mask; } + +void logger_set_mask(u8 index, LOG_LEVEL mask) +{ + if (index > sizeof(logger_state.streams) / sizeof(logger_stream_t)) + return; + logger_state.streams[index].mask = mask; +} + inline FILE* logger_stream_get_file(logger_stream_t* state) { return (FILE*)((state->stream & 0xffffffffffff) | ((u64)stdout & 0xffff0000000000)); @@ -79,6 +89,13 @@ void logger_remove_stream(u8 index) logger_state.num_streams--; } +logger_stream_t* logger_get_stream(u8 index) +{ + if (index > sizeof(logger_state.streams) / sizeof(logger_stream_t)) + return NULL; + return logger_state.streams+index; +} + u8 logger_find_stream(FILE* target) { for (size_t i = 0; i < BASALT_LOGGER_MAX_STREAMS; ++i) @@ -129,13 +146,13 @@ void basalt_log(const LOG_LEVEL level, const char* msg, ...) if (!err) { int n_chars = (int)strftime(time_buffer, sizeof(time_buffer), "%d-%m-%y %R:%S", &tm_info); - fprintf(out, "[%*s %*s]: ", (int)sizeof(log_prefixes[0]), log_prefixes[err_level], n_chars, time_buffer); + fprintf(out, "[%*s %*s]: ", (int)sizeof(log_prefixes[0])-1, log_prefixes[err_level], n_chars, time_buffer); } else - fprintf(out, "[%*s]: ", (int)sizeof(log_prefixes[0]), log_prefixes[err_level]); + fprintf(out, "[%*s]: ", (int)sizeof(log_prefixes[0])-1, log_prefixes[err_level]); } else - fprintf(out, "[%*s]: ", (int)sizeof(log_prefixes[0]), log_prefixes[err_level]); + fprintf(out, "[%*s]: ", (int)sizeof(log_prefixes[0])-1, log_prefixes[err_level]); } __builtin_va_list argstart; va_start(argstart, msg);