~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/trace.py

  • Committer: Aaron Bentley
  • Date: 2005-10-04 04:32:32 UTC
  • mfrom: (1185.12.6)
  • mto: (1185.12.13)
  • mto: This revision was merged to the branch mainline in revision 1419.
  • Revision ID: aaron.bentley@utoronto.ca-20051004043231-40302a149769263b
merged my own changes

Show diffs side-by-side

added added

removed removed

Lines of Context:
33
33
# TODO: When running the test suites, we should add an additional
34
34
# logger that sends messages into the test log file.
35
35
 
36
 
# FIXME: Unfortunately it turns out that python's logging module
37
 
# is quite expensive, even when the message is not printed by any handlers.
38
 
# We should perhaps change back to just simply doing it here.
39
 
 
40
36
 
41
37
import sys
42
38
import os
58
54
    # can get the exception details is we suppress them here.
59
55
 
60
56
    def format(self, record):
 
57
        s = 'bzr: '
61
58
        if record.levelno >= logging.WARNING:
62
 
            s = 'bzr: ' + record.levelname + ': '
63
 
        else:
64
 
            s = ''
 
59
            s += record.levelname + ': '
65
60
            
66
61
        s += record.getMessage()
67
62
 
156
151
          sys.platform)
157
152
 
158
153
    debug('  arguments: %r', argv)
159
 
    debug('  working dir: %r', os.getcwdu())
 
154
    debug('  working dir: %s', os.getcwdu())
160
155
 
161
156
 
162
157
def log_exception(msg=None):
163
 
    """Log the last exception to stderr and the trace file.
 
158
    """Log the last exception into the trace file.
164
159
 
165
160
    The exception string representation is used as the error
166
161
    summary, unless msg is given.
167
162
    """
168
 
    ei = sys.exc_info()
169
163
    if msg == None:
 
164
        ei = sys.exc_info()
170
165
        msg = str(ei[1])
 
166
 
171
167
    if msg and (msg[-1] == '\n'):
172
168
        msg = msg[:-1]
173
 
    msg += '\n  command: %s' % ' '.join(repr(arg) for arg in sys.argv)
174
 
    msg += '\n      pwd: %r' % os.getcwdu()
175
 
    msg += '\n    error: %s' % ei[0]        # exception type
 
169
        
176
170
    _bzr_logger.exception(msg)
177
171
 
178
172
 
179
 
def log_exception_quietly():
180
 
    """Log the last exception to the trace file only.
181
 
 
182
 
    Used for exceptions that occur internally and that may be 
183
 
    interesting to developers but not to users.  For example, 
184
 
    errors loading plugins.
185
 
    """
186
 
    debug(traceback.format_exc())
187
 
 
188
173
 
189
174
def enable_default_logging():
190
175
    """Configure default logging to stderr and .bzr.log"""