From ada52a1beba3cbbe94311385c9c04895f95b9348 Mon Sep 17 00:00:00 2001 From: Vo Minh Thu Date: Tue, 24 Jan 2012 16:07:50 +0100 Subject: [PATCH] [IMP] openerp.service: _logger with fully qualified module name. bzr revid: vmt@openerp.com-20120124150750-0bn7nagjx9k3bi6j --- openerp/service/__init__.py | 7 +++-- openerp/service/http_server.py | 9 +++--- openerp/service/netrpc_server.py | 11 ++++--- openerp/service/web_services.py | 54 +++++++++++--------------------- 4 files changed, 33 insertions(+), 48 deletions(-) diff --git a/openerp/service/__init__.py b/openerp/service/__init__.py index 1bb83dfd228..9fa1cf5c4f9 100644 --- a/openerp/service/__init__.py +++ b/openerp/service/__init__.py @@ -46,6 +46,8 @@ import openerp.wsgi low-level behavior of the wire. """ +_logger = logging.getLogger(__name__) + def start_services(): """ Start all services. @@ -80,9 +82,8 @@ def stop_services(): openerp.netsvc.Server.quitAll() openerp.wsgi.stop_server() config = openerp.tools.config - logger = logging.getLogger('server') - logger.info("Initiating shutdown") - logger.info("Hit CTRL-C again or send a second signal to force the shutdown.") + _logger.info("Initiating shutdown") + _logger.info("Hit CTRL-C again or send a second signal to force the shutdown.") logging.shutdown() # Manually join() all threads before calling sys.exit() to allow a second signal diff --git a/openerp/service/http_server.py b/openerp/service/http_server.py index 66d701e0681..8ef33a18ad4 100644 --- a/openerp/service/http_server.py +++ b/openerp/service/http_server.py @@ -60,6 +60,8 @@ try: except ImportError: class SSLError(Exception): pass +_logger = logging.getLogger(__name__) + class HttpLogHandler: """ helper class for uniform log handling Please define self._logger at each class that is derived from this @@ -120,8 +122,7 @@ def init_static_http(): reg_http_service(base_path, StaticHTTPHandler) - logging.getLogger("web-services").info("Registered HTTP dir %s for %s" % \ - (document_root, base_path)) + _logger.info("Registered HTTP dir %s for %s", document_root, base_path) import security @@ -140,11 +141,11 @@ class OpenERPAuthProvider(AuthProvider): return False return (user, passwd, db, uid) except Exception,e: - logging.getLogger("auth").debug("Fail auth: %s" % e ) + _logger.debug("Fail auth: %s" % e ) return False def log(self, msg, lvl=logging.INFO): - logging.getLogger("auth").log(lvl,msg) + _logger.log(lvl,msg) def checkRequest(self,handler,path, db=False): auth_str = handler.headers.get('Authorization',False) diff --git a/openerp/service/netrpc_server.py b/openerp/service/netrpc_server.py index f86d6d21273..bf34bb758a3 100644 --- a/openerp/service/netrpc_server.py +++ b/openerp/service/netrpc_server.py @@ -36,6 +36,8 @@ import openerp.netsvc as netsvc import openerp.tiny_socket as tiny_socket import openerp.tools as tools +_logger = logging.getLogger(__name__) + class TinySocketClientThread(threading.Thread): def __init__(self, sock, threads): spn = sock and sock.getpeername() @@ -69,12 +71,12 @@ class TinySocketClientThread(threading.Thread): valid_exception = Exception(netrpc_handle_exception_legacy(e)) valid_traceback = getattr(e, 'traceback', sys.exc_info()) formatted_traceback = "".join(traceback.format_exception(*valid_traceback)) - logging.getLogger('web-services').debug("netrpc: communication-level exception", exc_info=True) + _logger.debug("netrpc: communication-level exception", exc_info=True) ts.mysend(valid_exception, exception=True, traceback=formatted_traceback) break except Exception, ex: #terminate this channel if we can't properly send back the error - logging.getLogger('web-services').exception("netrpc: cannot deliver exception message to client") + _logger.exception("netrpc: cannot deliver exception message to client") break netsvc.close_socket(self.sock) @@ -127,11 +129,10 @@ class TinySocketServerThread(threading.Thread,netsvc.Server): if (lt > 10) and (lt % 10 == 0): # Not many threads should be serving at the same time, so log # their abuse. - netsvc.Logger().notifyChannel("web-services", netsvc.LOG_DEBUG, - "Netrpc: %d threads" % len(self.threads)) + _logger.debug("Netrpc: %d threads", len(self.threads)) self.socket.close() except Exception, e: - logging.getLogger('web-services').warning("Netrpc: closing because of exception %s" % str(e)) + _logger.warning("Netrpc: closing because of exception %s" % str(e)) self.socket.close() return False diff --git a/openerp/service/web_services.py b/openerp/service/web_services.py index 1bda0230c89..3cf8c7f4ffb 100644 --- a/openerp/service/web_services.py +++ b/openerp/service/web_services.py @@ -50,6 +50,8 @@ from openerp.service import http_server procedures to be called. Each method has its own arguments footprint. """ +_logger = logging.getLogger(__name__) + RPC_VERSION_1 = {'server_version': '6.1', 'protocol_version': 1} # This should be moved to openerp.modules.db, along side initialize(). @@ -83,7 +85,7 @@ def _initialize_db(serv, id, db_name, demo, lang, user_password): cr.close() except Exception, e: serv.actions[id].update(clean=False, exception=e) - logging.getLogger('db.create').exception('CREATE DATABASE failed:') + _logger.exception('CREATE DATABASE failed:') serv.actions[id]['traceback'] = traceback.format_exc() if cr: cr.close() @@ -134,7 +136,7 @@ class db(netsvc.ExportService): self._create_empty_database(db_name) - logging.getLogger('db.create').info('CREATE DATABASE %s', db_name.lower()) + _logger.info('CREATE DATABASE %s', db_name.lower()) create_thread = threading.Thread(target=_initialize_db, args=(self, id, db_name, demo, lang, user_password)) create_thread.start() @@ -150,7 +152,7 @@ class db(netsvc.ExportService): self.actions[id] = {'clean': False} - logging.getLogger('db.create').info('CREATE DATABASE %s', db_name.lower()) + _logger.info('CREATE DATABASE %s', db_name.lower()) self._create_empty_database(db_name) _initialize_db(self, id, db_name, demo, lang, user_password) return True @@ -173,7 +175,6 @@ class db(netsvc.ExportService): def exp_drop(self, db_name): openerp.modules.registry.RegistryManager.delete(db_name) sql_db.close_db(db_name) - logger = netsvc.Logger() db = sql_db.db_connect('template1') cr = db.cursor() @@ -182,12 +183,10 @@ class db(netsvc.ExportService): try: cr.execute('DROP DATABASE "%s"' % db_name) except Exception, e: - logger.notifyChannel("web-services", netsvc.LOG_ERROR, - 'DROP DB: %s failed:\n%s' % (db_name, e)) + _logger.error('DROP DB: %s failed:\n%s', db_name, e) raise Exception("Couldn't drop database %s: %s" % (db_name, e)) else: - logger.notifyChannel("web-services", netsvc.LOG_INFO, - 'DROP DB: %s' % (db_name)) + _logger.info('DROP DB: %s', db_name) finally: cr.close() return True @@ -202,8 +201,6 @@ class db(netsvc.ExportService): os.environ['PGPASSWORD'] = '' def exp_dump(self, db_name): - logger = netsvc.Logger() - self._set_pg_psw_env_var() cmd = ['pg_dump', '--format=c', '--no-owner'] @@ -220,24 +217,19 @@ class db(netsvc.ExportService): data = stdout.read() res = stdout.close() if res: - logger.notifyChannel("web-services", netsvc.LOG_ERROR, - 'DUMP DB: %s failed\n%s' % (db_name, data)) + _logger.error('DUMP DB: %s failed\n%s', db_name, data) raise Exception, "Couldn't dump database" - logger.notifyChannel("web-services", netsvc.LOG_INFO, - 'DUMP DB: %s' % (db_name)) + _logger.info('DUMP DB: %s', db_name) self._unset_pg_psw_env_var() return base64.encodestring(data) def exp_restore(self, db_name, data): - logger = netsvc.Logger() - self._set_pg_psw_env_var() if self.exp_db_exist(db_name): - logger.notifyChannel("web-services", netsvc.LOG_WARNING, - 'RESTORE DB: %s already exists' % (db_name,)) + _logger.warning('RESTORE DB: %s already exists', db_name) raise Exception, "Database already exists" self._create_empty_database(db_name) @@ -266,8 +258,7 @@ class db(netsvc.ExportService): res = stdout.close() if res: raise Exception, "Couldn't restore database" - logger.notifyChannel("web-services", netsvc.LOG_INFO, - 'RESTORE DB: %s' % (db_name)) + _logger.info('RESTORE DB: %s', db_name) self._unset_pg_psw_env_var() @@ -276,7 +267,6 @@ class db(netsvc.ExportService): def exp_rename(self, old_name, new_name): openerp.modules.registry.RegistryManager.delete(old_name) sql_db.close_db(old_name) - logger = netsvc.Logger() db = sql_db.db_connect('template1') cr = db.cursor() @@ -285,16 +275,14 @@ class db(netsvc.ExportService): try: cr.execute('ALTER DATABASE "%s" RENAME TO "%s"' % (old_name, new_name)) except Exception, e: - logger.notifyChannel("web-services", netsvc.LOG_ERROR, - 'RENAME DB: %s -> %s failed:\n%s' % (old_name, new_name, e)) + _logger.error('RENAME DB: %s -> %s failed:\n%s', old_name, new_name, e) raise Exception("Couldn't rename database %s to %s: %s" % (old_name, new_name, e)) else: fs = os.path.join(tools.config['root_path'], 'filestore') if os.path.exists(os.path.join(fs, old_name)): os.rename(os.path.join(fs, old_name), os.path.join(fs, new_name)) - logger.notifyChannel("web-services", netsvc.LOG_INFO, - 'RENAME DB: %s -> %s' % (old_name, new_name)) + _logger.info('RENAME DB: %s -> %s', old_name, new_name) finally: cr.close() return True @@ -369,7 +357,6 @@ class db(netsvc.ExportService): return True class common(netsvc.ExportService): - _logger = logging.getLogger('web-services') def __init__(self,name="common"): netsvc.ExportService.__init__(self,name) @@ -394,7 +381,7 @@ class common(netsvc.ExportService): # the res.users model res = security.login(db, login, password) msg = res and 'successful login' or 'bad login or password' - self._logger.info("%s from '%s' using database '%s'", msg, login, db.lower()) + _logger.info("%s from '%s' using database '%s'", msg, login, db.lower()) return res or False def exp_authenticate(self, db, login, password, user_agent_env): @@ -560,9 +547,8 @@ GNU Public Licence. return os.times() def exp_get_sqlcount(self): - logger = logging.getLogger('db.cursor') - if not logger.isEnabledFor(logging.DEBUG_SQL): - logger.warning("Counters of SQL will not be reliable unless DEBUG_SQL is set at the server's config.") + if not _logger.isEnabledFor(logging.DEBUG_SQL): + _logger.warning("Counters of SQL will not be reliable unless DEBUG_SQL is set at the server's config.") return sql_db.sql_counter @@ -693,9 +679,7 @@ class report_spool(netsvc.ExportService): tb = sys.exc_info() tb_s = "".join(traceback.format_exception(*tb)) - logger = netsvc.Logger() - logger.notifyChannel('web-services', netsvc.LOG_ERROR, - 'Exception: %s\n%s' % (str(exception), tb_s)) + _logger.error('Exception: %s\n%s', str(exception), tb_s) if hasattr(exception, 'name') and hasattr(exception, 'value'): self._reports[id]['exception'] = openerp.exceptions.DeferredException(tools.ustr(exception.name), tools.ustr(exception.value)) else: @@ -736,9 +720,7 @@ class report_spool(netsvc.ExportService): tb = sys.exc_info() tb_s = "".join(traceback.format_exception(*tb)) - logger = netsvc.Logger() - logger.notifyChannel('web-services', netsvc.LOG_ERROR, - 'Exception: %s\n%s' % (str(exception), tb_s)) + _logger.errro('Exception: %s\n%s', str(exception), tb_s) if hasattr(exception, 'name') and hasattr(exception, 'value'): self._reports[id]['exception'] = openerp.exceptions.DeferredException(tools.ustr(exception.name), tools.ustr(exception.value)) else: