Skip to content

Commit 1b1e6ea

Browse files
lestevergbkrk
authored andcommitted
FIX pickle RootLogger
1 parent f7d2a6f commit 1b1e6ea

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
@@ -833,6 +833,11 @@ def save_logger(self, obj):
833833

834834
dispatch[logging.Logger] = save_logger
835835

836+
def save_root_logger(self, obj):
837+
self.save_reduce(logging.getLogger, (), obj=obj)
838+
839+
dispatch[logging.RootLogger] = save_root_logger
840+
836841
"""Special functions for Add-on libraries"""
837842
def inject_addons(self):
838843
"""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
@@ -613,8 +613,8 @@ def test_cell_manipulation(self):
613613
msg='cell contents not set correctly',
614614
)
615615

616-
def test_logger(self):
617-
logger = logging.getLogger('cloudpickle.dummy_test_logger')
616+
def check_logger(self, name):
617+
logger = logging.getLogger(name)
618618
pickled = pickle_depickle(logger, protocol=self.protocol)
619619
self.assertTrue(pickled is logger, (pickled, logger))
620620

@@ -633,7 +633,13 @@ def test_logger(self):
633633
out, _ = proc.communicate()
634634
self.assertEqual(proc.wait(), 0)
635635
self.assertEqual(out.strip().decode(),
636-
'INFO:cloudpickle.dummy_test_logger:hello')
636+
'INFO:{}:hello'.format(logger.name))
637+
638+
def test_logger(self):
639+
# logging.RootLogger object
640+
self.check_logger(None)
641+
# logging.Logger object
642+
self.check_logger('cloudpickle.dummy_test_logger')
637643

638644
def test_abc(self):
639645

0 commit comments

Comments
 (0)