Mercurial > sjsbox
changeset 7:f2fef5bb0396
logger is now passed in as arg
author | Atul Varma <avarma@mozilla.com> |
---|---|
date | Mon, 31 May 2010 11:00:29 -0700 |
parents | b653b7beec1a |
children | 0efba0cf0ca3 |
files | sjsbox/box.py sjsbox/server.py |
diffstat | 2 files changed, 14 insertions(+), 10 deletions(-) [+] |
line wrap: on
line diff
--- a/sjsbox/box.py Mon May 31 10:53:21 2010 -0700 +++ b/sjsbox/box.py Mon May 31 11:00:29 2010 -0700 @@ -27,8 +27,9 @@ class BoxParent(object): TIMEOUT = 3.0 - def __init__(self, f): + def __init__(self, f, logger): self.file = f + self.logger = logger self.child = None self.child_pipe = None self.restart() @@ -50,18 +51,22 @@ self.child_pipe.send(('shutdown', None)) self.child.join(self.TIMEOUT) if self.child.is_alive(): - logging.warn('terminating child process: %s' % self.file) + self.logger.warn('terminating child process: %s' % self.file) self.child_pipe.close() self.child.terminate() else: - logging.info('child process shut down: %s' % self.file) + self.logger.info('child process shut down: %s' % self.file) self.child_pipe = None self.child = None class Boxes(object): - def __init__(self, directory, boxfactory=BoxParent): + def __init__(self, directory, boxfactory=BoxParent, + logger=None): + if logger is None: + logger = logging.getLogger() self.boxfactory = boxfactory self.dir = directory + self.logger = logger self.boxes = {} self.box_mtimes = {} self.update() @@ -75,20 +80,21 @@ for f in self.dir: boxname = f.name.rsplit('.', 1)[0] if boxname not in self.boxes: - logging.info('creating box %s' % boxname) + self.logger.info('creating box %s' % boxname) self.box_mtimes[boxname] = f.mtime - self.boxes[boxname] = self.boxfactory(f) + box = self.boxfactory(f, logger=self.logger) + self.boxes[boxname] = box else: box_mtime = f.mtime if box_mtime > self.box_mtimes[boxname]: self.box_mtimes[boxname] = box_mtime self.boxes[boxname].restart() - logging.info('updated box %s' % boxname) + self.logger.info('updated box %s' % boxname) visited[boxname] = True to_destroy = [boxname for boxname in self.boxes if boxname not in visited] for boxname in to_destroy: - logging.info('destroying box %s' % boxname) + self.logger.info('destroying box %s' % boxname) self.boxes[boxname].shutdown() del self.boxes[boxname]