TTYUI: Fix python 2.6 compatibility
We were using super() on a class derived from logging.Formatter() which worked fine in python 2.7. Apparently python 2.6 uses old-style classes for this, so the TTYUI broke and crashed OfflineImap. This was introduced in OLI 6.5.0, I think. Fix it by calling logging.Formatter.... directly, rather than the elegant super() (which I happen to like a lot more than is appropriate in the python world). Reported by Nik Reiman as github issue 23, should fix that issue. Signed-off-by: Sebastian Spaeth <Sebastian@SSpaeth.de>
This commit is contained in:
parent
73b2b01dfa
commit
344b2f0b7a
@ -20,3 +20,5 @@ Changes
|
|||||||
|
|
||||||
Bug Fixes
|
Bug Fixes
|
||||||
---------
|
---------
|
||||||
|
|
||||||
|
* Fix python2.6 compatibility with the TTYUI backend (crash)
|
||||||
|
@ -24,12 +24,14 @@ from offlineimap.ui.UIBase import UIBase
|
|||||||
class TTYFormatter(logging.Formatter):
|
class TTYFormatter(logging.Formatter):
|
||||||
"""Specific Formatter that adds thread information to the log output"""
|
"""Specific Formatter that adds thread information to the log output"""
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
super(TTYFormatter, self).__init__(*args, **kwargs)
|
#super() doesn't work in py2.6 as 'logging' uses old-style class
|
||||||
|
logging.Formatter.__init__(self, *args, **kwargs)
|
||||||
self._last_log_thread = None
|
self._last_log_thread = None
|
||||||
|
|
||||||
def format(self, record):
|
def format(self, record):
|
||||||
"""Override format to add thread information"""
|
"""Override format to add thread information"""
|
||||||
log_str = super(TTYFormatter, self).format(record)
|
#super() doesn't work in py2.6 as 'logging' uses old-style class
|
||||||
|
log_str = logging.Formatter.format(self, record)
|
||||||
# If msg comes from a different thread than our last, prepend
|
# If msg comes from a different thread than our last, prepend
|
||||||
# thread info. Most look like 'Account sync foo' or 'Folder
|
# thread info. Most look like 'Account sync foo' or 'Folder
|
||||||
# sync foo'.
|
# sync foo'.
|
||||||
|
Loading…
Reference in New Issue
Block a user