From 450b84c9d0e7e127fa95e17da0287096e01a3c45 Mon Sep 17 00:00:00 2001 From: capric98 <42015599+capric98@users.noreply.github.com> Date: Thu, 7 Apr 2022 01:27:53 +0800 Subject: [PATCH] add "log_level" to settings --- searx/__init__.py | 15 ++++++++------- searx/settings.yml | 2 +- searx/settings_defaults.py | 2 ++ searx/settings_loader.py | 8 ++++++++ 4 files changed, 19 insertions(+), 8 deletions(-) diff --git a/searx/__init__.py b/searx/__init__.py index d2d389ea9..89a5c11e3 100644 --- a/searx/__init__.py +++ b/searx/__init__.py @@ -13,13 +13,6 @@ import searx.settings_loader from searx.settings_defaults import settings_set_defaults -# Debug -LOG_FORMAT_DEBUG = '%(levelname)-7s %(name)-30.30s: %(message)s' - -# Production -LOG_FORMAT_PROD = '%(asctime)-15s %(levelname)s:%(name)s: %(message)s' -LOG_LEVEL_PROD = logging.WARNING - searx_dir = abspath(dirname(__file__)) searx_parent_dir = abspath(dirname(dirname(__file__))) settings, settings_load_message = searx.settings_loader.load_settings() @@ -27,6 +20,14 @@ settings, settings_load_message = searx.settings_loader.load_settings() if settings is not None: settings = settings_set_defaults(settings) +# Debug +LOG_FORMAT_DEBUG = '%(levelname)-7s %(name)-30.30s: %(message)s' + +# Production +LOG_FORMAT_PROD = '%(asctime)-15s %(levelname)s:%(name)s: %(message)s' +LOG_LEVEL_PROD = (settings['general']).get("log_level", "info").upper() +LOG_LEVEL_PROD = logging.getLevelName(LOG_LEVEL_PROD) + _unset = object() diff --git a/searx/settings.yml b/searx/settings.yml index 9e9f1f27a..55b7cf3e4 100644 --- a/searx/settings.yml +++ b/searx/settings.yml @@ -1,5 +1,5 @@ general: - debug: false # Debug mode, only for development + log_level: info # notset/debug/info/warning/error/critical instance_name: "SearXNG" # displayed name contact_url: false # mailto:contact@example.com enable_metrics: true # record stats diff --git a/searx/settings_defaults.py b/searx/settings_defaults.py index e3efb8544..5f307ea84 100644 --- a/searx/settings_defaults.py +++ b/searx/settings_defaults.py @@ -47,6 +47,7 @@ SEARX_ENVIRON_VARIABLES = { 'SEARX_DISABLE_ETC_SETTINGS': 'SEARXNG_DISABLE_ETC_SETTINGS', 'SEARX_SETTINGS_PATH': 'SEARXNG_SETTINGS_PATH', 'SEARX_DEBUG': 'SEARXNG_DEBUG', + 'SEARX_LOGLEVEL': 'SEARXNG_LOGLEVEL', 'SEARX_PORT': 'SEARXNG_PORT', 'SEARX_BIND_ADDRESS': 'SEARXNG_BIND_ADDRESS', 'SEARX_SECRET': 'SEARXNG_SECRET', @@ -140,6 +141,7 @@ def apply_schema(settings, schema, path_list): SCHEMA = { 'general': { 'debug': SettingsValue(bool, False, 'SEARXNG_DEBUG'), + 'log_level': SettingsValue(str, 'info', 'SEARXNG_LOGLEVEL'), 'instance_name': SettingsValue(str, 'SearXNG'), 'contact_url': SettingsValue((None, False, str), None), 'enable_metrics': SettingsValue(bool, True), diff --git a/searx/settings_loader.py b/searx/settings_loader.py index 14ca8b4aa..e1d2e4b96 100644 --- a/searx/settings_loader.py +++ b/searx/settings_loader.py @@ -1,4 +1,5 @@ # SPDX-License-Identifier: AGPL-3.0-or-later +import pprint from os import environ from os.path import dirname, join, abspath, isfile @@ -140,5 +141,12 @@ def load_settings(load_user_setttings=True): ), ) + # Consider to deprecate general.debug in the future. + # To make everything work correctly, set general.debug = general.log_level=="debug" + if "log_level" not in user_settings['general']: user_settings['general']['log_level'] = 'info' + user_settings['general']['debug'] = (user_settings['general']['log_level']=="debug") + + pprint.pprint(user_settings['general'], indent=4, sort_dicts=True) + # the user settings, fully replace the default configuration return (user_settings, 'load the user settings from {}'.format(user_settings_path))