[IMP] base : Improved the typos.
[odoo/odoo.git] / openerp / netsvc.py
index 7418aee..506c1e4 100644 (file)
@@ -125,9 +125,6 @@ COLOR_SEQ = "\033[1;%dm"
 BOLD_SEQ = "\033[1m"
 COLOR_PATTERN = "%s%s%%s%s" % (COLOR_SEQ, COLOR_SEQ, RESET_SEQ)
 LEVEL_COLOR_MAPPING = {
-    logging.DEBUG_SQL: (WHITE, MAGENTA),
-    logging.DEBUG_RPC: (BLUE, WHITE),
-    logging.DEBUG_RPC_ANSWER: (BLUE, WHITE),
     logging.DEBUG: (BLUE, DEFAULT),
     logging.INFO: (GREEN, DEFAULT),
     logging.TEST: (WHITE, BLUE),
@@ -154,7 +151,6 @@ def init_logger():
     resetlocale()
 
     # create a format for log messages and dates
-    format = '[%(asctime)s][%(dbname)s] %(levelname)s:%(name)s:%(message)s'
     format = '%(asctime)s %(pid)s %(levelname)s %(dbname)s %(name)s: %(message)s'
 
     if tools.config['syslog']:
@@ -193,17 +189,50 @@ def init_logger():
     handler.setFormatter(formatter)
 
     # Configure handlers
+    default_config = [
+        'openerp.netsvc.rpc.request:INFO',
+        'openerp.netsvc.rpc.response:INFO',
+        'openerp.addons.web.common.http:INFO',
+        'openerp.addons.web.common.openerplib:INFO',
+        'openerp.sql_db:INFO',
+        ':INFO',
+    ]
+
+    if tools.config['log_level'] == 'info':
+        pseudo_config = []
+    elif tools.config['log_level'] == 'debug_rpc':
+        pseudo_config = ['openerp:DEBUG','openerp.netsvc.rpc.request:DEBUG']
+    elif tools.config['log_level'] == 'debug_rpc_answer':
+        pseudo_config = ['openerp:DEBUG','openerp.netsvc.rpc.request:DEBUG', 'openerp.netsvc.rpc.response:DEBUG']
+    elif tools.config['log_level'] == 'debug':
+        pseudo_config = ['openerp:DEBUG']
+    elif tools.config['log_level'] == 'test':
+        pseudo_config = ['openerp:TEST']
+    elif tools.config['log_level'] == 'warn':
+        pseudo_config = ['openerp:WARNING']
+    elif tools.config['log_level'] == 'error':
+        pseudo_config = ['openerp:ERROR']
+    elif tools.config['log_level'] == 'critical':
+        pseudo_config = ['openerp:CRITICAL']
+    elif tools.config['log_level'] == 'debug_sql':
+        pseudo_config = ['openerp.sql_db:DEBUG']
+    else:
+        pseudo_config = []
+
     logconfig = tools.config['log_handler']
-    for i in logconfig:
-        prefix, level = i.split(':')
+
+    for logconfig_item in default_config + pseudo_config + logconfig:
+        loggername, level = logconfig_item.split(':')
         level = getattr(logging, level, logging.INFO)
-        logger = logging.getLogger(prefix)
+        logger = logging.getLogger(loggername)
         logger.handlers = []
         logger.setLevel(level)
         logger.addHandler(handler)
-        if prefix != '':
+        if loggername != '':
             logger.propagate = False
 
+    for logconfig_item in default_config + pseudo_config + logconfig:
+        _logger.debug('logger level set: "%s"', logconfig_item)
 
 # A alternative logging scheme for automated runs of the
 # server intended to test it.
@@ -305,11 +334,11 @@ def replace_request_password(args):
         args[2] = '*'
     return tuple(args)
 
-def dispatch_rpc_log(logger, prefix, msg, depth=None):
+def log(logger, level, prefix, msg, depth=None):
     indent=''
     indent_after=' '*len(prefix)
     for line in (prefix+pformat(msg, depth=depth)).split('\n'):
-        logger.debug(indent+line)
+        logger.log(level, indent+line)
         indent=indent_after
 
 def dispatch_rpc(service_name, method, params):
@@ -319,23 +348,25 @@ def dispatch_rpc(service_name, method, params):
     NET-RPC) is done in a upper layer.
     """
     try:
-        rpc_short = logging.getLogger(__name__ + '.rpc_short')
-        rpc_full = logging.getLogger(__name__ + '.rpc_full')
-        rpc_short_flag = rpc_short.isEnabledFor(logging.DEBUG)
-        rpc_full_flag = rpc_full.isEnabledFor(logging.DEBUG)
-        if rpc_short_flag or rpc_full_flag:
+        rpc_request = logging.getLogger(__name__ + '.rpc.request')
+        rpc_response = logging.getLogger(__name__ + '.rpc.response')
+        rpc_request_flag = rpc_request.isEnabledFor(logging.DEBUG)
+        rpc_response_flag = rpc_response.isEnabledFor(logging.DEBUG)
+        if rpc_request_flag or rpc_response_flag:
             start_time = time.time()
-            if rpc_full_flag:
-                dispatch_rpc_log(rpc_full,'%s.%s:request '%(service_name,method), replace_request_password(params))
+            if rpc_request and rpc_response_flag:
+                log(rpc_request,logging.DEBUG,'%s.%s'%(service_name,method), replace_request_password(params))
 
+        threading.current_thread().uid = None
+        threading.current_thread().dbname = None
         result = ExportService.getService(service_name).dispatch(method, params)
 
-        if rpc_short_flag or rpc_full_flag:
+        if rpc_request_flag or rpc_response_flag:
             end_time = time.time()
-            if rpc_full_flag:
-                dispatch_rpc_log(rpc_full,'%s.%s:reply time:%.3fs '%(service_name,method,end_time - start_time), result)
+            if rpc_response_flag:
+                log(rpc_response,logging.DEBUG,'%s.%s time:%.3fs '%(service_name,method,end_time - start_time), result)
             else:
-                dispatch_rpc_log(rpc_short,'%s.%s time:%.3fs '%(service_name,method,end_time - start_time), replace_request_password(params), depth=1)
+                log(rpc_request,logging.DEBUG,'%s.%s time:%.3fs '%(service_name,method,end_time - start_time), replace_request_password(params), depth=1)
 
         return result
     except openerp.exceptions.AccessError: