/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to bzrlib/trace.py

  • Committer: Jelmer Vernooij
  • Date: 2010-03-21 21:39:33 UTC
  • mfrom: (5102 +trunk)
  • mto: This revision was merged to the branch mainline in revision 5143.
  • Revision ID: jelmer@samba.org-20100321213933-fexeh9zcoz8oaju2
merge bzr.dev.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright (C) 2005, 2006, 2007, 2008, 2009 Canonical Ltd
 
1
# Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010 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
14
14
# along with this program; if not, write to the Free Software
15
15
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
16
 
17
 
"""Messages and logging for bazaar-ng.
 
17
"""Messages and logging.
18
18
 
19
19
Messages are supplied by callers as a string-formatting template, plus values
20
20
to be inserted into it.  The actual %-formatting is deferred to the log
33
33
 
34
34
Output to stderr depends on the mode chosen by the user.  By default, messages
35
35
of info and above are sent out, which results in progress messages such as the
36
 
list of files processed by add and commit.  In quiet mode, only warnings and
37
 
above are shown.  In debug mode, stderr gets debug messages too.
 
36
list of files processed by add and commit.  In debug mode, stderr gets debug messages too.
38
37
 
39
38
Errors that terminate an operation are generally passed back as exceptions;
40
39
others may be just emitted as messages.
83
82
    osutils,
84
83
    plugin,
85
84
    symbol_versioning,
 
85
    ui,
86
86
    )
87
87
""")
88
88
 
145
145
    _bzr_logger.error(*args, **kwargs)
146
146
 
147
147
 
148
 
def show_error(msg):
 
148
def show_error(*args, **kwargs):
149
149
    """Show an error message to the user.
150
150
 
151
151
    Don't use this for exceptions, use report_exception instead.
250
250
            bzr_log_file.write("bug reports to https://bugs.launchpad.net/bzr/+filebug\n\n")
251
251
        return bzr_log_file
252
252
    except IOError, e:
253
 
        warning("failed to open trace file: %s" % (e))
 
253
        # If we are failing to open the log, then most likely logging has not
 
254
        # been set up yet. So we just write to stderr rather than using
 
255
        # 'warning()'. If we using warning(), users get the unhelpful 'no
 
256
        # handlers registered for "bzr"' when something goes wrong on the
 
257
        # server. (bug #503886)
 
258
        sys.stderr.write("failed to open trace file: %s\n" % (e,))
254
259
    # TODO: What should happen if we fail to open the trace file?  Maybe the
255
260
    # objects should be pointed at /dev/null or the equivalent?  Currently
256
261
    # returns None which will cause failures later.
360
365
    global _verbosity_level
361
366
    _verbosity_level = level
362
367
    _update_logging_level(level < 0)
 
368
    ui.ui_factory.be_quiet(level < 0)
363
369
 
364
370
 
365
371
def get_verbosity_level():
371
377
 
372
378
 
373
379
def be_quiet(quiet=True):
374
 
    # Perhaps this could be deprecated now ...
375
380
    if quiet:
376
381
        set_verbosity_level(-1)
377
382
    else:
496
501
    """Report an exception that probably indicates a bug in bzr"""
497
502
    from bzrlib.crash import report_bug
498
503
    report_bug(exc_info, err_file)
 
504
 
 
505
 
 
506
def _flush_stdout_stderr():
 
507
    # installed into an atexit hook by bzrlib.initialize()
 
508
    try:
 
509
        sys.stdout.flush()
 
510
        sys.stderr.flush()
 
511
    except IOError, e:
 
512
        import errno
 
513
        if e.errno in [errno.EINVAL, errno.EPIPE]:
 
514
            pass
 
515
        else:
 
516
            raise
 
517
 
 
518
 
 
519
def _flush_trace():
 
520
    # run from atexit hook
 
521
    global _trace_file
 
522
    if _trace_file:
 
523
        _trace_file.flush()