Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAleksey Lim <alsroot@sugarlabs.org>2013-08-04 03:58:24 (GMT)
committer Aleksey Lim <alsroot@sugarlabs.org>2013-08-04 03:58:24 (GMT)
commitc323fe410ba189d1e75129d7d1b2ded9cde78db4 (patch)
treee07f502ca82eb00e52deb7f3df8e1180958d0fd8
parenta8fb61b807e4c46adec8d631f596632a3fa7b6e3 (diff)
Make toolkit.init_logging appropriate to call out of SN applications
-rwxr-xr-xsugar-network1
-rwxr-xr-xsugar-network-client2
-rwxr-xr-xsugar-network-node2
-rw-r--r--sugar_network/toolkit/__init__.py60
-rw-r--r--sugar_network/toolkit/application.py22
-rw-r--r--sugar_network/toolkit/pipe.py5
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