diff options
author | Aleksey Lim <alsroot@sugarlabs.org> | 2013-08-04 03:58:24 (GMT) |
---|---|---|
committer | Aleksey Lim <alsroot@sugarlabs.org> | 2013-08-04 03:58:24 (GMT) |
commit | c323fe410ba189d1e75129d7d1b2ded9cde78db4 (patch) | |
tree | e07f502ca82eb00e52deb7f3df8e1180958d0fd8 | |
parent | a8fb61b807e4c46adec8d631f596632a3fa7b6e3 (diff) |
Make toolkit.init_logging appropriate to call out of SN applications
-rwxr-xr-x | sugar-network | 1 | ||||
-rwxr-xr-x | sugar-network-client | 2 | ||||
-rwxr-xr-x | sugar-network-node | 2 | ||||
-rw-r--r-- | sugar_network/toolkit/__init__.py | 60 | ||||
-rw-r--r-- | sugar_network/toolkit/application.py | 22 | ||||
-rw-r--r-- | sugar_network/toolkit/pipe.py | 5 |
6 files changed, 45 insertions, 47 deletions
diff --git a/sugar-network b/sugar-network index ac61fa7..b294e5b 100755 --- a/sugar-network +++ b/sugar-network @@ -88,7 +88,6 @@ class Application(application.Application): application.Application.__init__(self, **kwargs) application.rundir.value = join(client.local_root.value, 'run') - toolkit.init_logging(application.debug.value) if not exists(toolkit.cachedir.value): os.makedirs(toolkit.cachedir.value) diff --git a/sugar-network-client b/sugar-network-client index 9e3b62d..5cc1ca2 100755 --- a/sugar-network-client +++ b/sugar-network-client @@ -41,9 +41,7 @@ class Application(application.Daemon): application.Daemon.__init__(self, **kwargs) node.sync_layers.value = client.layers.value - self.jobs = coroutine.Pool() - toolkit.init_logging(application.debug.value) new_root = (client.local_root.value != client.local_root.default) client.local_root.value = abspath(client.local_root.value) diff --git a/sugar-network-node b/sugar-network-node index 3ef2f4c..0975b57 100755 --- a/sugar-network-node +++ b/sugar-network-node @@ -47,8 +47,6 @@ class Application(application.Daemon): 'No write access to %r directory', node.data_root.value) def run(self): - toolkit.init_logging(application.debug.value) - ssl_args = {} if node.keyfile.value: ssl_args['keyfile'] = node.keyfile.value diff --git a/sugar_network/toolkit/__init__.py b/sugar_network/toolkit/__init__.py index e753a78..b1f7c81 100644 --- a/sugar_network/toolkit/__init__.py +++ b/sugar_network/toolkit/__init__.py @@ -187,17 +187,48 @@ def uuid(): return ''.join(str(uuid1()).split('-')) -def init_logging(debug_level): +def init_logging(debug_level=None, **kwargs): # pylint: disable-msg=W0212 logging.addLevelName(9, 'TRACE') logging.addLevelName(8, 'HEARTBEAT') + if debug_level is None: + logging_level = logging.getLogger().level + else: + logging_level = 0 + if debug_level < 3: + if logging_level <= 0: + logging_level = logging.WARNING + elif debug_level == 1: + logging_level = logging.INFO + elif debug_level == 2: + logging_level = logging.DEBUG + elif debug_level < 4: + logging_level = 9 + else: + logging_level = 8 + + def disable_logger(loggers): + for log_name in loggers: + logger = logging.getLogger(log_name) + logger.propagate = False + logger.addHandler(_NullHandler()) + logging.Logger.trace = lambda self, message, *args, **kwargs: None logging.Logger.heartbeat = lambda self, message, *args, **kwargs: None - if debug_level < 3: - _disable_logger([ + if logging_level <= 8: + logging.Logger.trace = lambda self, message, *args, **kwargs: \ + self._log(9, message, args, **kwargs) + logging.Logger.heartbeat = lambda self, message, *args, **kwargs: \ + self._log(8, message, args, **kwargs) + elif logging_level == 9: + logging.Logger.trace = lambda self, message, *args, **kwargs: \ + self._log(9, message, args, **kwargs) + disable_logger(['sugar_stats']) + else: + disable_logger([ 'requests.packages.urllib3.connectionpool', 'requests.packages.urllib3.poolmanager', 'requests.packages.urllib3.response', @@ -207,15 +238,13 @@ def init_logging(debug_level): 'sugar_stats', '0install', ]) - elif debug_level < 4: - logging.Logger.trace = lambda self, message, *args, **kwargs: \ - self._log(9, message, args, **kwargs) - _disable_logger(['sugar_stats']) - else: - logging.Logger.trace = lambda self, message, *args, **kwargs: \ - self._log(9, message, args, **kwargs) - logging.Logger.heartbeat = lambda self, message, *args, **kwargs: \ - self._log(8, message, args, **kwargs) + + root_logger = logging.getLogger('') + for i in root_logger.handlers: + root_logger.removeHandler(i) + logging.basicConfig(level=logging_level, + format='%(asctime)s %(levelname)s %(name)s: %(message)s', + **kwargs) def ensure_key(path): @@ -831,11 +860,4 @@ def _nb_read(stream): fcntl.fcntl(fd, fcntl.F_SETFL, orig_flags) -def _disable_logger(loggers): - for log_name in loggers: - logger = logging.getLogger(log_name) - logger.propagate = False - logger.addHandler(_NullHandler()) - - _default_lang = None diff --git a/sugar_network/toolkit/application.py b/sugar_network/toolkit/application.py index 6895f00..06d55a6 100644 --- a/sugar_network/toolkit/application.py +++ b/sugar_network/toolkit/application.py @@ -25,7 +25,8 @@ from optparse import OptionParser from os.path import join, abspath, exists, basename from gettext import gettext as _ -from sugar_network.toolkit import Option, coroutine, printf, enforce +from sugar_network.toolkit import Option +from sugar_network.toolkit import coroutine, printf, init_logging, enforce debug = Option( @@ -57,9 +58,6 @@ rundir = Option( name='rundir') -_LOGFILE_FORMAT = '%(asctime)s %(levelname)s %(name)s: %(message)s' - - def command(description='', name=None, args=None, hidden=False, interspersed_args=True, **options): @@ -168,21 +166,7 @@ class Application(object): print epilog exit(0) - if not debug.value: - logging_level = logging.WARNING - elif debug.value == 1: - logging_level = logging.INFO - elif debug.value == 2: - logging_level = logging.DEBUG - elif debug.value > 2: - logging_level = 0 - logging_format = _LOGFILE_FORMAT - - root_logger = logging.getLogger('') - for i in root_logger.handlers: - root_logger.removeHandler(i) - - logging.basicConfig(level=logging_level, format=logging_format) + init_logging(debug.value) def epilog(self): pass diff --git a/sugar_network/toolkit/pipe.py b/sugar_network/toolkit/pipe.py index aec97d0..7a53201 100644 --- a/sugar_network/toolkit/pipe.py +++ b/sugar_network/toolkit/pipe.py @@ -184,9 +184,6 @@ def _setup_logging(path): os.dup2(logfile.fileno(), sys.stderr.fileno()) logfile.close() - for handler in logging.getLogger().handlers: - logging.getLogger().removeHandler(handler) - logging.basicConfig(level=logging.getLogger().level, - format='%(asctime)s %(levelname)s %(name)s: %(message)s') + toolkit.init_logging() return path |