~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/trace.py

[merge] bzr.dev 2255, resolve conflicts, update copyrights

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright (C) 2005, 2006 by Canonical Ltd
 
1
# Copyright (C) 2005, 2006 Canonical Ltd
2
2
#
3
3
# This program is free software; you can redistribute it and/or modify
4
4
# it under the terms of the GNU General Public License as published by
50
50
# is quite expensive, even when the message is not printed by any handlers.
51
51
# We should perhaps change back to just simply doing it here.
52
52
 
53
 
 
54
 
import errno
55
53
import os
56
54
import sys
57
55
import re
 
56
 
 
57
from bzrlib.lazy_import import lazy_import
 
58
lazy_import(globals(), """
 
59
import errno
58
60
import logging
 
61
""")
59
62
 
60
63
import bzrlib
61
 
from bzrlib.errors import BzrError, BzrNewError
62
64
from bzrlib.symbol_versioning import (deprecated_function,
63
65
        zero_nine,
64
66
        )
65
67
 
 
68
lazy_import(globals(), """
 
69
from bzrlib import debug
 
70
""")
 
71
 
66
72
_file_handler = None
67
73
_stderr_handler = None
68
74
_stderr_quiet = False
116
122
    _trace_file.write(out)
117
123
    # TODO: jam 20051227 Consider flushing the trace file to help debugging
118
124
    #_trace_file.flush()
119
 
debug = mutter
120
125
 
121
126
 
122
127
def _rollover_trace_maybe(trace_fname):
149
154
        if tf.tell() == 0:
150
155
            tf.write("\nthis is a debug log for diagnosing/reporting problems in bzr\n")
151
156
            tf.write("you can delete or truncate this file, or include sections in\n")
152
 
            tf.write("bug reports to bazaar-ng@lists.canonical.com\n\n")
 
157
            tf.write("bug reports to bazaar@lists.canonical.com\n\n")
153
158
        _file_handler = logging.StreamHandler(tf)
154
159
        fmt = r'[%(process)5d] %(asctime)s.%(msecs)03d %(levelname)s: %(message)s'
155
160
        datefmt = r'%a %H:%M:%S'
180
185
    errors loading plugins.
181
186
    """
182
187
    import traceback
183
 
    debug(traceback.format_exc())
 
188
    mutter(traceback.format_exc())
184
189
 
185
190
 
186
191
def enable_default_logging():
267
272
        print >>err_file, "bzr: broken pipe"
268
273
    elif isinstance(exc_object, KeyboardInterrupt):
269
274
        print >>err_file, "bzr: interrupted"
270
 
    elif getattr(exc_object, 'is_user_error', False):
 
275
    elif not getattr(exc_object, 'internal_error', True):
271
276
        report_user_error(exc_info, err_file)
272
277
    elif isinstance(exc_object, (OSError, IOError)):
273
278
        # Might be nice to catch all of these and show them as something more
279
284
 
280
285
# TODO: Should these be specially encoding the output?
281
286
def report_user_error(exc_info, err_file):
 
287
    """Report to err_file an error that's not an internal error.
 
288
 
 
289
    These don't get a traceback unless -Derror was given.
 
290
    """
 
291
    if 'error' in debug.debug_flags:
 
292
        report_bug(exc_info, err_file)
 
293
        return
282
294
    print >>err_file, "bzr: ERROR:", str(exc_info[1])
283
295
 
284
296
 
297
309
                        sys.platform)
298
310
    print >>err_file, 'arguments: %r' % sys.argv
299
311
    print >>err_file
300
 
    print >>err_file, "** please send this report to bazaar-ng@lists.ubuntu.com"
 
312
    print >>err_file, "** please send this report to bazaar@lists.ubuntu.com"