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]
 
--- a/sjsbox/server.py	Mon May 31 10:53:21 2010 -0700
+++ b/sjsbox/server.py	Mon May 31 11:00:29 2010 -0700
@@ -1,5 +1,3 @@
-import logging
-
 try:
     import json
 except ImportError: