Browse Source

[enh] using the logger

Adam Tauber 10 years ago
parent
commit
299a80a1eb
4 changed files with 22 additions and 8 deletions
  1. 7 4
      searx/engines/__init__.py
  2. 5 2
      searx/https_rewrite.py
  3. 5 2
      searx/search.py
  4. 5 0
      searx/webapp.py

+ 7 - 4
searx/engines/__init__.py

@@ -22,6 +22,10 @@ from imp import load_source
 from flask.ext.babel import gettext
 from flask.ext.babel import gettext
 from operator import itemgetter
 from operator import itemgetter
 from searx import settings
 from searx import settings
+from searx import logger
+
+
+logger = logger.getChild('engines')
 
 
 engine_dir = dirname(realpath(__file__))
 engine_dir = dirname(realpath(__file__))
 
 
@@ -81,7 +85,7 @@ def load_engine(engine_data):
         if engine_attr.startswith('_'):
         if engine_attr.startswith('_'):
             continue
             continue
         if getattr(engine, engine_attr) is None:
         if getattr(engine, engine_attr) is None:
-            print('[E] Engine config error: Missing attribute "{0}.{1}"'
+            logger.error('Missing engine config attribute: "{0}.{1}"'
                   .format(engine.name, engine_attr))
                   .format(engine.name, engine_attr))
             sys.exit(1)
             sys.exit(1)
 
 
@@ -100,9 +104,8 @@ def load_engine(engine_data):
         categories['general'].append(engine)
         categories['general'].append(engine)
 
 
     if engine.shortcut:
     if engine.shortcut:
-        # TODO check duplications
         if engine.shortcut in engine_shortcuts:
         if engine.shortcut in engine_shortcuts:
-            print('[E] Engine config error: ambigious shortcut: {0}'
+            logger.error('Engine config error: ambigious shortcut: {0}'
                   .format(engine.shortcut))
                   .format(engine.shortcut))
             sys.exit(1)
             sys.exit(1)
         engine_shortcuts[engine.shortcut] = engine.name
         engine_shortcuts[engine.shortcut] = engine.name
@@ -199,7 +202,7 @@ def get_engines_stats():
 
 
 
 
 if 'engines' not in settings or not settings['engines']:
 if 'engines' not in settings or not settings['engines']:
-    print '[E] Error no engines found. Edit your settings.yml'
+    logger.error('No engines found. Edit your settings.yml')
     exit(2)
     exit(2)
 
 
 for engine_data in settings['engines']:
 for engine_data in settings['engines']:

+ 5 - 2
searx/https_rewrite.py

@@ -20,8 +20,11 @@ from urlparse import urlparse
 from lxml import etree
 from lxml import etree
 from os import listdir
 from os import listdir
 from os.path import isfile, isdir, join
 from os.path import isfile, isdir, join
+from searx import logger
 
 
 
 
+logger = logger.getChild("https_rewrite")
+
 # https://gitweb.torproject.org/\
 # https://gitweb.torproject.org/\
 # pde/https-everywhere.git/tree/4.0:/src/chrome/content/rules
 # pde/https-everywhere.git/tree/4.0:/src/chrome/content/rules
 
 
@@ -131,7 +134,7 @@ def load_single_https_ruleset(filepath):
 def load_https_rules(rules_path):
 def load_https_rules(rules_path):
     # check if directory exists
     # check if directory exists
     if not isdir(rules_path):
     if not isdir(rules_path):
-        print("[E] directory not found: '" + rules_path + "'")
+        logger.error("directory not found: '" + rules_path + "'")
         return
         return
 
 
     # search all xml files which are stored in the https rule directory
     # search all xml files which are stored in the https rule directory
@@ -151,7 +154,7 @@ def load_https_rules(rules_path):
         # append ruleset
         # append ruleset
         https_rules.append(ruleset)
         https_rules.append(ruleset)
 
 
-    print(' * {n} https-rules loaded'.format(n=len(https_rules)))
+    logger.info('{n} rules loaded'.format(n=len(https_rules)))
 
 
 
 
 def https_url_rewrite(result):
 def https_url_rewrite(result):

+ 5 - 2
searx/search.py

@@ -29,8 +29,11 @@ from searx.engines import (
 from searx.languages import language_codes
 from searx.languages import language_codes
 from searx.utils import gen_useragent
 from searx.utils import gen_useragent
 from searx.query import Query
 from searx.query import Query
+from searx import logger
 
 
 
 
+logger = logger.getChild('search')
+
 number_of_searches = 0
 number_of_searches = 0
 
 
 
 
@@ -42,7 +45,7 @@ def search_request_wrapper(fn, url, engine_name, **kwargs):
         engines[engine_name].stats['errors'] += 1
         engines[engine_name].stats['errors'] += 1
 
 
         # print engine name and specific error message
         # print engine name and specific error message
-        print('[E] Error with engine "{0}":\n\t{1}'.format(
+        logger.warning('engine crash: {0}\n\t{1}'.format(
             engine_name, str(e)))
             engine_name, str(e)))
         return
         return
 
 
@@ -66,7 +69,7 @@ def threaded_requests(requests):
             remaining_time = max(0.0, timeout_limit - (time() - search_start))
             remaining_time = max(0.0, timeout_limit - (time() - search_start))
             th.join(remaining_time)
             th.join(remaining_time)
             if th.isAlive():
             if th.isAlive():
-                print('engine timeout: {0}'.format(th._engine_name))
+                logger.warning('engine timeout: {0}'.format(th._engine_name))
 
 
 
 
 # get default reqest parameter
 # get default reqest parameter

+ 5 - 0
searx/webapp.py

@@ -47,8 +47,11 @@ from searx.https_rewrite import https_url_rewrite
 from searx.search import Search
 from searx.search import Search
 from searx.query import Query
 from searx.query import Query
 from searx.autocomplete import backends as autocomplete_backends
 from searx.autocomplete import backends as autocomplete_backends
+from searx import logger
 
 
 
 
+logger = logger.getChild('webapp')
+
 static_path, templates_path, themes =\
 static_path, templates_path, themes =\
     get_themes(settings['themes_path']
     get_themes(settings['themes_path']
                if settings.get('themes_path')
                if settings.get('themes_path')
@@ -68,6 +71,8 @@ app = Flask(
 
 
 app.secret_key = settings['server']['secret_key']
 app.secret_key = settings['server']['secret_key']
 
 
+app.logger.addHandler(logger)
+
 babel = Babel(app)
 babel = Babel(app)
 
 
 global_favicons = []
 global_favicons = []