~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/trace.py

  • Committer: Martin Pool
  • Date: 2005-08-25 07:46:11 UTC
  • Revision ID: mbp@sourcefrog.net-20050825074611-98130ea6d05d9d2a
- add functions to enable and disable default logging, so that we can
  turn it off while running the tests

- default logging gets turned on from the bzr main function so that
  other applications using the library can make their own decisions

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
44
45
 
45
46
 
46
47
class QuietFormatter(logging.Formatter):
69
70
 
70
71
        return s
71
72
        
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)
84
73
 
85
74
 
86
75
 
90
79
_bzr_logger = logging.getLogger('bzr')
91
80
_bzr_logger.setLevel(logging.DEBUG) 
92
81
 
93
 
note =      _bzr_logger.info
 
82
info = note = _bzr_logger.info
94
83
warning =   _bzr_logger.warning
95
84
log_error = _bzr_logger.error
96
85
error =     _bzr_logger.error
128
117
 
129
118
 
130
119
 
131
 
def open_tracefile(argv=[], tracefilename='~/.bzr.log'):
 
120
def open_tracefile(tracefilename='~/.bzr.log'):
132
121
    # Messages are always written to here, so that we have some
133
122
    # information if something goes wrong.  In a future version this
134
123
    # file will be removed on successful completion.
154
143
        _file_handler.setLevel(logging.DEBUG)
155
144
        logging.getLogger('').addHandler(_file_handler)
156
145
 
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())
166
146
    except IOError, e:
167
147
        warning("failed to open trace file: %s" % (e))
168
148
 
169
149
 
 
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
 
170
161
 
171
162
def log_exception(msg=None):
172
163
    """Log the last exception into the trace file.
182
173
        msg = msg[:-1]
183
174
        
184
175
    _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