feat(log): 支持设置多个日志级别的组合
将 `log_set_level` 函数的参数类型从 `log_level_t` 改为 `int`, 以支持传入多个日志级别的按位或组合。 同时调整测试代码中的日志级别设置方式,并修复部分逻辑引用问题,以及#未知宏跳过更多的行的bug。
This commit is contained in:
@@ -375,7 +375,6 @@ static void parse_line(smcc_lexer_t* lexer, lexer_tok_t* token) {
|
||||
lexer_next_pos(lexer);
|
||||
if (ch != line[i]) {
|
||||
LEX_WARN("Maroc does not support in lexer rather in preprocessor, it will be ignored");
|
||||
skip_newline(lexer, token);
|
||||
goto SKIP_LINE;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -23,7 +23,9 @@ int g_num_arr[3];
|
||||
int main(int argc, char* argv[]) {
|
||||
// int num = 0;
|
||||
if (argc == 3 && strcmp(argv[2], "-nodebug") == 0) {
|
||||
log_set_level(NULL, LOG_LEVEL_ALL);
|
||||
log_set_level(NULL, LOG_LEVEL_INFO
|
||||
| LOG_LEVEL_WARN
|
||||
| LOG_LEVEL_ERROR);
|
||||
}
|
||||
|
||||
const char* file_name = __FILE__;
|
||||
@@ -63,7 +65,7 @@ int main(int argc, char* argv[]) {
|
||||
core_stream_t* stream = core_mem_stream_init(&mem_stream, buffer, fsize, false);
|
||||
Assert(stream != null);
|
||||
cstring_clear(&stream->name);
|
||||
cstring_push_cstr(&stream->name, __FILE__, strlen(__FILE__));
|
||||
cstring_push_cstr(&stream->name, file_name, strlen(file_name));
|
||||
lexer_init(&lexer, stream);
|
||||
lexer_tok_t tok;
|
||||
|
||||
@@ -72,7 +74,7 @@ int main(int argc, char* argv[]) {
|
||||
if (tok.type == TOKEN_EOF) {
|
||||
break;
|
||||
}
|
||||
LOG_INFO("token `%s` at %s:%u:%u", get_tok_name(tok.type), tok.loc.name, tok.loc.line, tok.loc.column);
|
||||
LOG_DEBUG("token `%s` at %s:%u:%u", get_tok_name(tok.type), tok.loc.name, tok.loc.line, tok.loc.column);
|
||||
Assert(tok.loc.offset <= fsize);
|
||||
// LOG_DEBUG("%s", tok.val.str);
|
||||
// printf("line: %d, column: %d, type: %3d, typename: %s\n",
|
||||
|
||||
@@ -56,7 +56,7 @@ logger_t* log_get(const char* name) {
|
||||
return &logger_root;
|
||||
}
|
||||
|
||||
void log_set_level(logger_t* logger, log_level_t level) {
|
||||
void log_set_level(logger_t* logger, int level) {
|
||||
if (logger) logger->level = level;
|
||||
else logger_root.level = level;
|
||||
}
|
||||
|
||||
@@ -105,7 +105,7 @@ logger_t* log_get(const char* name);
|
||||
* @param[in] logger 目标日志器实例
|
||||
* @param[in] level 要设置的日志级别(可组合多个级别)
|
||||
*/
|
||||
void log_set_level(logger_t* logger, log_level_t level);
|
||||
void log_set_level(logger_t* logger, int level);
|
||||
|
||||
/**
|
||||
* @brief 设置自定义日志处理器
|
||||
|
||||
Reference in New Issue
Block a user