~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/trace.py

Code format cleanups

Show diffs side-by-side

added added

removed removed

Lines of Context:
58
58
import sys
59
59
import os
60
60
import logging
61
 
import traceback
62
61
 
63
62
import bzrlib
64
63
from bzrlib.errors import BzrNewError
103
102
debug =     _bzr_logger.debug
104
103
 
105
104
 
106
 
 
107
 
 
108
 
# we do the rollover using this code, rather than the default from python
109
 
# logging, because we only want to rollover at program startup, not on each
110
 
# message.  maybe that's not a good enough reason.
111
 
 
112
105
def _rollover_trace_maybe(trace_fname):
113
106
    import stat
114
107
    try:
116
109
        if size <= 4 << 20:
117
110
            return
118
111
        old_fname = trace_fname + '.old'
119
 
 
120
112
        from osutils import rename
121
113
        rename(trace_fname, old_fname)
122
 
 
123
114
    except OSError:
124
115
        return
125
116
 
126
117
 
127
 
 
128
118
def open_tracefile(tracefilename='~/.bzr.log'):
129
119
    # Messages are always written to here, so that we have some
130
120
    # information if something goes wrong.  In a future version this
134
124
 
135
125
    trace_fname = os.path.join(os.path.expanduser(tracefilename))
136
126
    _rollover_trace_maybe(trace_fname)
137
 
 
138
 
    # buffering=1 means line buffered
139
127
    try:
140
 
        tf = codecs.open(trace_fname, 'at', 'utf8', buffering=1)
 
128
        LINE_BUFFERED = 1
 
129
        tf = codecs.open(trace_fname, 'at', 'utf8', buffering=LINE_BUFFERED)
141
130
 
142
131
        if os.fstat(tf.fileno())[stat.ST_SIZE] == 0:
143
132
            tf.write("\nthis is a debug log for diagnosing/reporting problems in bzr\n")
150
139
        _file_handler.setFormatter(logging.Formatter(fmt, datefmt))
151
140
        _file_handler.setLevel(logging.DEBUG)
152
141
        logging.getLogger('').addHandler(_file_handler)
153
 
 
154
142
    except IOError, e:
155
143
        warning("failed to open trace file: %s" % (e))
156
144
 
183
171
    interesting to developers but not to users.  For example, 
184
172
    errors loading plugins.
185
173
    """
 
174
    import traceback
186
175
    debug(traceback.format_exc())
187
176
 
188
177