# SPDX-License-Identifier: LGPL-2.1-only # Copyright 2022 Jookia <contact@jookia.org> LEXER = 0 PARSER = 1 NORMAL = 0 # messages always shown DEBUG = 1 # high-level information about what's happening TRACE = 2 # trace output log_level = 0 def log(module, level, text): if level > log_level: return if module == LEXER: module_name = "LEXER" elif module == PARSER: module_name = "PARSER" else: module_name = "UNKNOWN" if level == NORMAL: level_name = "NORMAL" elif level == DEBUG: level_name = "DEBUG" elif level == TRACE: level_name = "TRACE" else: level_name = "UNKNOWN" print("%s %s: %s" % (level_name, module_name, text)) def set_default_log_level(level): global log_level if not level or level == "NORMAL": log_level = 0 elif level == "DEBUG": log_level = 1 elif level == "TRACE": log_level = 2 else: print("ERROR: Unknown log level %s" % (level))