~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/trace.py

  • Committer: Robert Collins
  • Date: 2005-08-25 06:08:36 UTC
  • mto: (974.1.50) (1185.1.10) (1092.3.1)
  • mto: This revision was merged to the branch mainline in revision 1139.
  • Revision ID: robertc@robertcollins.net-20050825060836-40b430abb9d341d9
unbreak cmd_branch now that something tests the core of it..

Show diffs side-by-side

added added

removed removed

Lines of Context:
41
41
 
42
42
 
43
43
_file_handler = None
44
 
_stderr_handler = None
45
44
 
46
45
 
47
46
class QuietFormatter(logging.Formatter):
70
69
 
71
70
        return s
72
71
        
 
72
################
 
73
# configure default handler to stderr
 
74
 
 
75
_stderr_handler = logging.StreamHandler()
 
76
_stderr_handler.setFormatter(QuietFormatter())
 
77
 
 
78
if os.environ.get('BZR_DEBUG'):
 
79
    _stderr_handler.setLevel(logging.DEBUG)
 
80
else:
 
81
    _stderr_handler.setLevel(logging.INFO)
 
82
 
 
83
logging.getLogger('').addHandler(_stderr_handler)
73
84
 
74
85
 
75
86
 
79
90
_bzr_logger = logging.getLogger('bzr')
80
91
_bzr_logger.setLevel(logging.DEBUG) 
81
92
 
82
 
info = note = _bzr_logger.info
 
93
note =      _bzr_logger.info
83
94
warning =   _bzr_logger.warning
84
95
log_error = _bzr_logger.error
85
96
error =     _bzr_logger.error
117
128
 
118
129
 
119
130
 
120
 
def open_tracefile(tracefilename='~/.bzr.log'):
 
131
def open_tracefile(argv=[], tracefilename='~/.bzr.log'):
121
132
    # Messages are always written to here, so that we have some
122
133
    # information if something goes wrong.  In a future version this
123
134
    # file will be removed on successful completion.
143
154
        _file_handler.setLevel(logging.DEBUG)
144
155
        logging.getLogger('').addHandler(_file_handler)
145
156
 
 
157
        import bzrlib
 
158
        
 
159
        debug('bzr %s invoked on python %s (%s)'
 
160
              % (bzrlib.__version__,
 
161
                 '.'.join(map(str, sys.version_info)),
 
162
                 sys.platform))
 
163
 
 
164
        debug('  arguments: %r' % argv)
 
165
        debug('  working dir: ' + os.getcwdu())
146
166
    except IOError, e:
147
167
        warning("failed to open trace file: %s" % (e))
148
168
 
149
169
 
150
 
def log_startup(argv):
151
 
    import bzrlib
152
 
 
153
 
    debug('bzr %s invoked on python %s (%s)',
154
 
          bzrlib.__version__,
155
 
          '.'.join(map(str, sys.version_info)),
156
 
          sys.platform)
157
 
 
158
 
    debug('  arguments: %r', argv)
159
 
    debug('  working dir: %s', os.getcwdu())
160
 
 
161
170
 
162
171
def log_exception(msg=None):
163
172
    """Log the last exception into the trace file.
169
178
        ei = sys.exc_info()
170
179
        msg = str(ei[1])
171
180
 
172
 
    if msg and (msg[-1] == '\n'):
 
181
    if msg[-1] == '\n':
173
182
        msg = msg[:-1]
174
183
        
175
184
    _bzr_logger.exception(msg)
176
 
 
177
 
 
178
 
 
179
 
def enable_default_logging():
180
 
    """Configure default logging to stderr and .bzr.log"""
181
 
    global _stderr_handler, _file_handler
182
 
 
183
 
    _stderr_handler = logging.StreamHandler()
184
 
    _stderr_handler.setFormatter(QuietFormatter())
185
 
 
186
 
    if not _file_handler:
187
 
        open_tracefile()
188
 
 
189
 
    if os.environ.get('BZR_DEBUG'):
190
 
        level = logging.DEBUG
191
 
    else:
192
 
        level = logging.INFO
193
 
 
194
 
    _stderr_handler.setLevel(logging.INFO)
195
 
    _file_handler.setLevel(level)
196
 
 
197
 
    logging.getLogger('').addHandler(_stderr_handler)
198
 
 
199
 
 
200
 
 
201
 
def disable_default_logging():
202
 
    """Turn off default log handlers.
203
 
 
204
 
    This is intended to be used by the test framework, which doesn't
205
 
    want leakage from the code-under-test into the main logs.
206
 
    """
207
 
 
208
 
    l = logging.getLogger('')
209
 
    l.removeHandler(_stderr_handler)
210
 
    if _file_handler:
211
 
        l.removeHandler(_file_handler)