~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/trace.py

Merge from integration.

Show diffs side-by-side

added added

removed removed

Lines of Context:
45
45
import logging
46
46
 
47
47
import bzrlib
48
 
from bzrlib.errors import BzrNewError
 
48
from bzrlib.errors import BzrError, BzrNewError
49
49
 
50
50
 
51
51
_file_handler = None
54
54
_trace_file = None
55
55
_bzr_log_file = None
56
56
 
 
57
 
57
58
class QuietFormatter(logging.Formatter):
58
59
    """Formatter that supresses the details of errors.
59
60
 
93
94
    else:
94
95
        out = fmt
95
96
    out += '\n'
96
 
    if isinstance(out, unicode):
97
 
        out = out.encode('utf-8')
98
97
    _trace_file.write(out)
99
98
debug = mutter
100
99
 
252
251
    try:
253
252
        if exc_type is None:
254
253
            return '(no exception)'
255
 
        if isinstance(exc_object, BzrNewError):
 
254
        if isinstance(exc_object, (BzrError, BzrNewError)):
256
255
            return str(exc_object)
257
256
        else:
258
257
            import traceback
263
262
            if tb:
264
263
                msg += '\n  at %s line %d\n  in %s' % (tb[-1][:3])
265
264
            return msg
266
 
    except:
267
 
        return '(error formatting exception of type %s)' % exc_type
 
265
    except Exception, formatting_exc:
 
266
        # XXX: is this really better than just letting it run up?
 
267
        return '(error formatting exception of type %s: %s)' \
 
268
                % (exc_type, formatting_exc)