Don't use macros for the logging functionality, as the inlined code makes it harder to read disassembler output where the log functions are used. This also means that the log level doesn't need to be known at runtime, but a compiler macro will lookup the metadata at compile time if it is.
Also optimize the log level check by translating between the symbol specifier and the log level integer when the log level is set.
Don't use macros for the logging functionality, as the inlined code makes it harder to read disassembler output where the log functions are used. This also means that the log level doesn't need to be known at runtime, but a compiler macro will lookup the metadata at compile time if it is.
Also optimize the log level check by translating between the symbol specifier and the log level integer when the log level is set.