[feat] logs: Settings option to set custom level
This commit is contained in:
		
							parent
							
								
									d1a3fc5be6
								
							
						
					
					
						commit
						3c91f44cc6
					
				| @ -5,6 +5,7 @@ | |||||||
| import sys | import sys | ||||||
| import os | import os | ||||||
| from os.path import dirname, abspath | from os.path import dirname, abspath | ||||||
|  | from enum import Enum | ||||||
| 
 | 
 | ||||||
| import logging | import logging | ||||||
| 
 | 
 | ||||||
| @ -12,14 +13,6 @@ import searx.unixthreadname | |||||||
| import searx.settings_loader | import searx.settings_loader | ||||||
| from searx.settings_defaults import settings_set_defaults | 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_dir = abspath(dirname(__file__)) | ||||||
| searx_parent_dir = abspath(dirname(dirname(__file__))) | searx_parent_dir = abspath(dirname(dirname(__file__))) | ||||||
| settings, settings_load_message = searx.settings_loader.load_settings() | settings, settings_load_message = searx.settings_loader.load_settings() | ||||||
| @ -27,6 +20,31 @@ settings, settings_load_message = searx.settings_loader.load_settings() | |||||||
| if settings is not None: | if settings is not None: | ||||||
|     settings = settings_set_defaults(settings) |     settings = settings_set_defaults(settings) | ||||||
| 
 | 
 | ||||||
|  | 
 | ||||||
|  | class ValidLogLevels(str, Enum): | ||||||
|  |     """Log levels for the application, levels should match ones from the logging | ||||||
|  |     module. | ||||||
|  | 
 | ||||||
|  |     """ | ||||||
|  | 
 | ||||||
|  |     INFO = logging.INFO | ||||||
|  |     WARN = logging.WARN | ||||||
|  |     WARNING = logging.WARNING | ||||||
|  |     ERROR = logging.ERROR | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | # Debug | ||||||
|  | LOG_FORMAT_DEBUG = '%(levelname)-7s %(name)-30.30s: %(message)s' | ||||||
|  | 
 | ||||||
|  | # Production | ||||||
|  | LOG_FORMAT_PROD = '%(asctime)-15s %(levelname)s:%(name)s: %(message)s' | ||||||
|  | 
 | ||||||
|  | searx_loglevel = settings['general']['log_level'] | ||||||
|  | if searx_loglevel.upper() in ValidLogLevels._member_names_: | ||||||
|  |     LOG_LEVEL_PROD = ValidLogLevels[searx_loglevel.upper()].name | ||||||
|  | else: | ||||||
|  |     LOG_LEVEL_PROD = logging.WARNING | ||||||
|  | 
 | ||||||
| _unset = object() | _unset = object() | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| @ -96,6 +114,7 @@ else: | |||||||
|     logging.root.setLevel(level=LOG_LEVEL_PROD) |     logging.root.setLevel(level=LOG_LEVEL_PROD) | ||||||
|     logging.getLogger('werkzeug').setLevel(level=LOG_LEVEL_PROD) |     logging.getLogger('werkzeug').setLevel(level=LOG_LEVEL_PROD) | ||||||
| logger = logging.getLogger('searx') | logger = logging.getLogger('searx') | ||||||
|  | logger.setLevel(level=LOG_LEVEL_PROD) | ||||||
| logger.info(settings_load_message) | logger.info(settings_load_message) | ||||||
| 
 | 
 | ||||||
| # log max_request_timeout | # log max_request_timeout | ||||||
|  | |||||||
| @ -1,6 +1,8 @@ | |||||||
| general: | general: | ||||||
|   # Debug mode, only for development. Is overwritten by ${SEARXNG_DEBUG} |   # Debug mode, only for development. Is overwritten by ${SEARXNG_DEBUG} | ||||||
|   debug: false |   debug: false | ||||||
|  |   # Application log level - leave blank to use the default 'WARNING' level | ||||||
|  |   log_level: "warning" | ||||||
|   # displayed name |   # displayed name | ||||||
|   instance_name: "SearXNG" |   instance_name: "SearXNG" | ||||||
|   # For example: https://example.com/privacy |   # For example: https://example.com/privacy | ||||||
|  | |||||||
| @ -139,6 +139,7 @@ def apply_schema(settings, schema, path_list): | |||||||
| SCHEMA = { | SCHEMA = { | ||||||
|     'general': { |     'general': { | ||||||
|         'debug': SettingsValue(bool, False, 'SEARXNG_DEBUG'), |         'debug': SettingsValue(bool, False, 'SEARXNG_DEBUG'), | ||||||
|  |         'log_level': SettingsValue(str, 'warning'), | ||||||
|         'instance_name': SettingsValue(str, 'SearXNG'), |         'instance_name': SettingsValue(str, 'SearXNG'), | ||||||
|         'privacypolicy_url': SettingsValue((None, False, str), None), |         'privacypolicy_url': SettingsValue((None, False, str), None), | ||||||
|         'contact_url': SettingsValue((None, False, str), None), |         'contact_url': SettingsValue((None, False, str), None), | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user