mirror of https://github.com/docker/docker-py.git
Merge pull request #11 from kstaken/logging-config
Allow control over the logging done by BuilderClient
This commit is contained in:
commit
9e4fb4003c
|
@ -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):
|
||||||
|
|
Loading…
Reference in New Issue