Added function implementations for modifying the global logging mask as well as the mask for each stream (local mask)
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user