Skip to content

Commit

Permalink
FIX pickle RootLogger
Browse files Browse the repository at this point in the history
  • Loading branch information
lesteve authored and rgbkrk committed Mar 28, 2018
1 parent f7d2a6f commit 1b1e6ea
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 3 deletions.
5 changes: 5 additions & 0 deletions cloudpickle/cloudpickle.py
Original file line number Diff line number Diff line change
Expand Up @@ -833,6 +833,11 @@ def save_logger(self, obj):

dispatch[logging.Logger] = save_logger

def save_root_logger(self, obj):
self.save_reduce(logging.getLogger, (), obj=obj)

dispatch[logging.RootLogger] = save_root_logger

"""Special functions for Add-on libraries"""
def inject_addons(self):
"""Plug in system. Register additional pickling functions if modules already loaded"""
Expand Down
12 changes: 9 additions & 3 deletions tests/cloudpickle_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -613,8 +613,8 @@ def test_cell_manipulation(self):
msg='cell contents not set correctly',
)

def test_logger(self):
logger = logging.getLogger('cloudpickle.dummy_test_logger')
def check_logger(self, name):
logger = logging.getLogger(name)
pickled = pickle_depickle(logger, protocol=self.protocol)
self.assertTrue(pickled is logger, (pickled, logger))

Expand All @@ -633,7 +633,13 @@ def test_logger(self):
out, _ = proc.communicate()
self.assertEqual(proc.wait(), 0)
self.assertEqual(out.strip().decode(),
'INFO:cloudpickle.dummy_test_logger:hello')
'INFO:{}:hello'.format(logger.name))

def test_logger(self):
# logging.RootLogger object
self.check_logger(None)
# logging.Logger object
self.check_logger('cloudpickle.dummy_test_logger')

def test_abc(self):

Expand Down

0 comments on commit 1b1e6ea

Please sign in to comment.