1- # Copyright 2001-2016 by Vinay Sajip. All Rights Reserved.
1+ # Copyright 2001-2017 by Vinay Sajip. All Rights Reserved.
22#
33# Permission to use, copy, modify, and distribute this software and its
44# documentation for any purpose and without fee is hereby granted,
1818Logging package for Python. Based on PEP 282 and comments thereto in
1919comp.lang.python.
2020
21- Copyright (C) 2001-2016 Vinay Sajip. All Rights Reserved.
21+ Copyright (C) 2001-2017 Vinay Sajip. All Rights Reserved.
2222
2323To use, simply 'import logging' and log away!
2424"""
@@ -1570,6 +1570,14 @@ def __repr__(self):
15701570 level = getLevelName (self .getEffectiveLevel ())
15711571 return '<%s %s (%s)>' % (self .__class__ .__name__ , self .name , level )
15721572
1573+ def __reduce__ (self ):
1574+ # In general, only the root logger will not be accessible via its name.
1575+ # However, the root logger's class has its own __reduce__ method.
1576+ if getLogger (self .name ) is not self :
1577+ import pickle
1578+ raise pickle .PicklingError ('logger cannot be pickled' )
1579+ return getLogger , (self .name ,)
1580+
15731581
15741582class RootLogger (Logger ):
15751583 """
@@ -1583,6 +1591,9 @@ def __init__(self, level):
15831591 """
15841592 Logger .__init__ (self , "root" , level )
15851593
1594+ def __reduce__ (self ):
1595+ return getLogger , ()
1596+
15861597_loggerClass = Logger
15871598
15881599class LoggerAdapter (object ):
0 commit comments