Merge pull request #11 from kstaken/logging-config

Allow control over the logging done by BuilderClient
This commit is contained in:
Joffrey F 2013-07-02 10:08:23 -07:00
commit 9e4fb4003c
1 changed files with 20 additions and 11 deletions

View File

@ -73,8 +73,8 @@ class Client(requests.Session):
return self.post(url, json.dumps(data2), **kwargs) return self.post(url, json.dumps(data2), **kwargs)
def build(self, dockerfile, tag=None): def build(self, dockerfile, tag=None, logger=None):
bc = BuilderClient(self) bc = BuilderClient(self, logger)
img_id = None img_id = None
try: try:
img_id = bc.build(dockerfile, tag=tag) img_id = bc.build(dockerfile, tag=tag)
@ -292,7 +292,7 @@ class Client(requests.Session):
class BuilderClient(object): class BuilderClient(object):
def __init__(self, client): def __init__(self, client, logger=None):
self.client = client self.client = client
self.tmp_containers = {} self.tmp_containers = {}
self.tmp_images = {} self.tmp_images = {}
@ -302,20 +302,29 @@ class BuilderClient(object):
self.need_commit = False self.need_commit = False
self.config = {} self.config = {}
self.logger = logging.getLogger(__name__) if logger:
logging.basicConfig(format='%(asctime)s %(levelname)s %(message)s', self.logger = logger
level='INFO') else:
self.logs = StringIO() self.logger = logging.getLogger(__name__)
self.logger.addHandler(logging.StreamHandler(self.logs)) logging.basicConfig(format='%(asctime)s %(levelname)s %(message)s',
level='INFO')
self.logs = StringIO()
self.logger.addHandler(logging.StreamHandler(self.logs))
def done(self): def done(self):
if self.image is None: if self.image is None:
# The build is unsuccessful, remove temporary containers and images # The build is unsuccessful, remove temporary containers and images
self.client.remove_container(*self.tmp_containers) self.client.remove_container(*self.tmp_containers)
self.client.remove_image(*self.tmp_images) self.client.remove_image(*self.tmp_images)
self.logs.flush()
res = self.logs.getvalue() res = ''
#self.logs.close() try:
self.logs.flush()
res = self.logs.getvalue()
#self.logs.close()
except AttributeError:
pass
return res return res
def build(self, dockerfile, tag=None): def build(self, dockerfile, tag=None):