~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/trace.py

  • Committer: Jelmer Vernooij
  • Date: 2006-06-13 13:24:40 UTC
  • mfrom: (1767 +trunk)
  • mto: (1769.1.1 integration)
  • mto: This revision was merged to the branch mainline in revision 1770.
  • Revision ID: jelmer@samba.org-20060613132440-24e222a86f948f60
[merge] bzr.dev

Show diffs side-by-side

added added

removed removed

Lines of Context:
27
27
 
28
28
Exceptions are reported in a brief form to stderr so as not to look scary.
29
29
BzrErrors are required to be able to format themselves into a properly
30
 
explanatory message.  This is not true for builtin excexceptions such as
 
30
explanatory message.  This is not true for builtin exceptions such as
31
31
KeyError, which typically just str to "0".  They're printed in a different
32
32
form.
33
33
"""
57
57
 
58
58
 
59
59
class QuietFormatter(logging.Formatter):
60
 
    """Formatter that supresses the details of errors.
 
60
    """Formatter that suppresses the details of errors.
61
61
 
62
62
    This is used by default on stderr so as not to scare the user.
63
63
    """
64
 
    # At first I tried overriding formatException to suppress the
 
64
    # At first I tried overriding FormatException to suppress the
65
65
    # exception details, but that has global effect: no loggers
66
66
    # can get the exception details is we suppress them here.
67
67
 
100
100
    if hasattr(_trace_file, 'closed') and _trace_file.closed:
101
101
        return
102
102
    if len(args) > 0:
103
 
        out = fmt % args
 
103
        # It seems that if we do ascii % (unicode, ascii) we can
 
104
        # get a unicode cannot encode ascii error, so make sure that "fmt"
 
105
        # is a unicode string
 
106
        out = unicode(fmt) % args
104
107
    else:
105
108
        out = fmt
106
109
    out += '\n'
107
 
    _trace_file.write(out)
 
110
    try:
 
111
        _trace_file.write(out)
 
112
    except UnicodeError, e:
 
113
        warning('UnicodeError: %s', e)
 
114
        _trace_file.write(repr(out))
 
115
    # TODO: jam 20051227 Consider flushing the trace file to help debugging
 
116
    #_trace_file.flush()
108
117
debug = mutter
109
118
 
110
119