forked from Ponysearch/Ponysearch
[fix] logger per engine: make .logger is always initialized
the openstreetmap engine imports code from the wikidata engine. before this commit, specific code make sure to copy the logger variable to the wikidata engine. with this commit searx.engines.load_engine makes sure the .logger is initialized. The implementation scans sys.modules for module name starting with searx.engines.
This commit is contained in:
parent
1973e4ecf6
commit
f8793fbda0
2 changed files with 17 additions and 6 deletions
|
@ -110,10 +110,26 @@ def load_engine(engine_data):
|
|||
if is_missing_required_attributes(engine):
|
||||
return None
|
||||
|
||||
engine.logger = logger.getChild(engine_name)
|
||||
set_loggers(engine, engine_name)
|
||||
|
||||
return engine
|
||||
|
||||
|
||||
def set_loggers(engine, engine_name):
|
||||
# set the logger for engine
|
||||
engine.logger = logger.getChild(engine_name)
|
||||
# the engine may have load some other engines
|
||||
# may sure the logger is initialized
|
||||
for module_name, module in sys.modules.items():
|
||||
if (
|
||||
module_name.startswith("searx.engines")
|
||||
and module_name != "searx.engines.__init__"
|
||||
and not hasattr(module, "logger")
|
||||
):
|
||||
module_engine_name = module_name.split(".")[-1]
|
||||
module.logger = logger.getChild(module_engine_name)
|
||||
|
||||
|
||||
def update_engine_attributes(engine, engine_data):
|
||||
# set engine attributes from engine_data
|
||||
for param_name, param_value in engine_data.items():
|
||||
|
|
|
@ -438,8 +438,3 @@ def get_key_label(key_name, lang):
|
|||
if labels is None:
|
||||
return None
|
||||
return get_label(labels, lang)
|
||||
|
||||
|
||||
def init(_):
|
||||
import searx.engines.wikidata # pylint: disable=import-outside-toplevel
|
||||
searx.engines.wikidata.logger = logger
|
||||
|
|
Loading…
Reference in a new issue