1- # Copyright 2001-2014 by Vinay Sajip. All Rights Reserved.
1+ # Copyright 2001-2016 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,
1919is based on PEP 282 and comments thereto in comp.lang.python, and influenced
2020by Apache's log4j system.
2121
22- Copyright (C) 2001-2014 Vinay Sajip. All Rights Reserved.
22+ Copyright (C) 2001-2016 Vinay Sajip. All Rights Reserved.
2323
2424To use, simply 'import logging' and log away!
2525"""
@@ -509,21 +509,21 @@ def configure(self):
509509 handler .setLevel (logging ._checkLevel (level ))
510510 except Exception as e :
511511 raise ValueError ('Unable to configure handler '
512- '%r: %s ' % ( name , e ))
512+ '%r' % name ) from e
513513 loggers = config .get ('loggers' , EMPTY_DICT )
514514 for name in loggers :
515515 try :
516516 self .configure_logger (name , loggers [name ], True )
517517 except Exception as e :
518518 raise ValueError ('Unable to configure logger '
519- '%r: %s ' % ( name , e ))
519+ '%r' % name ) from e
520520 root = config .get ('root' , None )
521521 if root :
522522 try :
523523 self .configure_root (root , True )
524524 except Exception as e :
525525 raise ValueError ('Unable to configure root '
526- 'logger: %s' % e )
526+ 'logger' ) from e
527527 else :
528528 disable_existing = config .pop ('disable_existing_loggers' , True )
529529
@@ -538,15 +538,15 @@ def configure(self):
538538 formatters [name ])
539539 except Exception as e :
540540 raise ValueError ('Unable to configure '
541- 'formatter %r: %s ' % ( name , e ))
541+ 'formatter %r' % name ) from e
542542 # Next, do filters - they don't refer to anything else, either
543543 filters = config .get ('filters' , EMPTY_DICT )
544544 for name in filters :
545545 try :
546546 filters [name ] = self .configure_filter (filters [name ])
547547 except Exception as e :
548548 raise ValueError ('Unable to configure '
549- 'filter %r: %s ' % ( name , e ))
549+ 'filter %r' % name ) from e
550550
551551 # Next, do handlers - they refer to formatters and filters
552552 # As handlers can refer to other handlers, sort the keys
@@ -559,11 +559,11 @@ def configure(self):
559559 handler .name = name
560560 handlers [name ] = handler
561561 except Exception as e :
562- if 'target not configured yet ' in str (e ):
562+ if 'Unable to set target handler ' in str (e ):
563563 deferred .append (name )
564564 else :
565565 raise ValueError ('Unable to configure handler '
566- '%r: %s ' % ( name , e ))
566+ '%r' % name ) from e
567567
568568 # Now do any that were deferred
569569 for name in deferred :
@@ -573,7 +573,7 @@ def configure(self):
573573 handlers [name ] = handler
574574 except Exception as e :
575575 raise ValueError ('Unable to configure handler '
576- '%r: %s ' % ( name , e ))
576+ '%r' % name ) from e
577577
578578 # Next, do loggers - they refer to handlers and filters
579579
@@ -612,7 +612,7 @@ def configure(self):
612612 self .configure_logger (name , loggers [name ])
613613 except Exception as e :
614614 raise ValueError ('Unable to configure logger '
615- '%r: %s ' % ( name , e ))
615+ '%r' % name ) from e
616616
617617 #Disable any old loggers. There's no point deleting
618618 #them as other threads may continue to hold references
@@ -637,7 +637,7 @@ def configure(self):
637637 self .configure_root (root )
638638 except Exception as e :
639639 raise ValueError ('Unable to configure root '
640- 'logger: %s' % e )
640+ 'logger' ) from e
641641 finally :
642642 logging ._releaseLock ()
643643
@@ -684,7 +684,7 @@ def add_filters(self, filterer, filters):
684684 try :
685685 filterer .addFilter (self .config ['filters' ][f ])
686686 except Exception as e :
687- raise ValueError ('Unable to add filter %r: %s ' % ( f , e ))
687+ raise ValueError ('Unable to add filter %r' % f ) from e
688688
689689 def configure_handler (self , config ):
690690 """Configure a handler from a dictionary."""
@@ -695,7 +695,7 @@ def configure_handler(self, config):
695695 formatter = self .config ['formatters' ][formatter ]
696696 except Exception as e :
697697 raise ValueError ('Unable to set formatter '
698- '%r: %s ' % ( formatter , e ))
698+ '%r' % formatter ) from e
699699 level = config .pop ('level' , None )
700700 filters = config .pop ('filters' , None )
701701 if '()' in config :
@@ -717,7 +717,7 @@ def configure_handler(self, config):
717717 config ['target' ] = th
718718 except Exception as e :
719719 raise ValueError ('Unable to set target handler '
720- '%r: %s ' % ( config ['target' ], e ))
720+ '%r' % config ['target' ]) from e
721721 elif issubclass (klass , logging .handlers .SMTPHandler ) and \
722722 'mailhost' in config :
723723 config ['mailhost' ] = self .as_tuple (config ['mailhost' ])
@@ -755,7 +755,7 @@ def add_handlers(self, logger, handlers):
755755 try :
756756 logger .addHandler (self .config ['handlers' ][h ])
757757 except Exception as e :
758- raise ValueError ('Unable to add handler %r: %s ' % ( h , e ))
758+ raise ValueError ('Unable to add handler %r' % h ) from e
759759
760760 def common_logger_config (self , logger , config , incremental = False ):
761761 """
0 commit comments