~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/trace.py

 * bzr add now lists how many files were ignored per glob.  add --verbose
   lists the specific files.  (Aaron Bentley)

Show diffs side-by-side

added added

removed removed

Lines of Context:
14
14
those two places to another location.
15
15
 
16
16
~/.bzr.log gets all messages, and full tracebacks for uncaught exceptions.
 
17
This trace file is always in UTF-8, regardless of the user's default encoding,
 
18
so that we can always rely on writing any message.
17
19
 
18
20
Output to stderr depends on the mode chosen by the user.  By default, messages
19
21
of info and above are sent out, which results in progress messages such as the
43
45
import logging
44
46
 
45
47
import bzrlib
46
 
from bzrlib.errors import BzrNewError
 
48
from bzrlib.errors import BzrError, BzrNewError
47
49
 
48
50
 
49
51
_file_handler = None
52
54
_trace_file = None
53
55
_bzr_log_file = None
54
56
 
 
57
 
55
58
class QuietFormatter(logging.Formatter):
56
59
    """Formatter that supresses the details of errors.
57
60
 
87
90
    if hasattr(_trace_file, 'closed') and _trace_file.closed:
88
91
        return
89
92
    if len(args) > 0:
90
 
        print >>_trace_file, fmt % args
 
93
        out = fmt % args
91
94
    else:
92
 
        print >>_trace_file, fmt
 
95
        out = fmt
 
96
    out += '\n'
 
97
    _trace_file.write(out)
93
98
debug = mutter
94
99
 
95
100
 
246
251
    try:
247
252
        if exc_type is None:
248
253
            return '(no exception)'
249
 
        if isinstance(exc_object, BzrNewError):
 
254
        if isinstance(exc_object, (BzrError, BzrNewError)):
250
255
            return str(exc_object)
251
256
        else:
252
257
            import traceback
257
262
            if tb:
258
263
                msg += '\n  at %s line %d\n  in %s' % (tb[-1][:3])
259
264
            return msg
260
 
    except:
261
 
        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)