Skip to content

Commit 6dcd666

Browse files
lestevergbkrk
authored andcommitted
FIX pickle RootLogger
1 parent 618f632 commit 6dcd666

File tree

2 files changed

+14
-3
lines changed

2 files changed

+14
-3
lines changed

cloudpickle/cloudpickle.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -819,6 +819,11 @@ def save_logger(self, obj):
819819

820820
dispatch[logging.Logger] = save_logger
821821

822+
def save_root_logger(self, obj):
823+
self.save_reduce(logging.getLogger, (), obj=obj)
824+
825+
dispatch[logging.RootLogger] = save_root_logger
826+
822827
"""Special functions for Add-on libraries"""
823828
def inject_addons(self):
824829
"""Plug in system. Register additional pickling functions if modules already loaded"""

tests/cloudpickle_test.py

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -588,8 +588,8 @@ def test_cell_manipulation(self):
588588
msg='cell contents not set correctly',
589589
)
590590

591-
def test_logger(self):
592-
logger = logging.getLogger('cloudpickle.dummy_test_logger')
591+
def check_logger(self, name):
592+
logger = logging.getLogger(name)
593593
pickled = pickle_depickle(logger)
594594
self.assertTrue(pickled is logger, (pickled, logger))
595595

@@ -608,7 +608,13 @@ def test_logger(self):
608608
out, _ = proc.communicate()
609609
self.assertEqual(proc.wait(), 0)
610610
self.assertEqual(out.strip().decode(),
611-
'INFO:cloudpickle.dummy_test_logger:hello')
611+
'INFO:{}:hello'.format(logger.name))
612+
613+
def test_logger(self):
614+
# logging.RootLogger object
615+
self.check_logger(None)
616+
# logging.Logger object
617+
self.check_logger('cloudpickle.dummy_test_logger')
612618

613619
def test_abc(self):
614620

0 commit comments

Comments
 (0)