~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/trace.py

  • Committer: Jelmer Vernooij
  • Date: 2016-04-03 16:32:31 UTC
  • mto: This revision was merged to the branch mainline in revision 6617.
  • Revision ID: jelmer@jelmer.uk-20160403163231-h72bo0uyek2gikw0
Don't put French text in doc/en/user-reference when LANGUAGE=fr_CH.UTF_8.

Show diffs side-by-side

added added

removed removed

Lines of Context:
45
45
form.
46
46
"""
47
47
 
 
48
from __future__ import absolute_import
 
49
 
48
50
# FIXME: Unfortunately it turns out that python's logging module
49
51
# is quite expensive, even when the message is not printed by any handlers.
50
52
# We should perhaps change back to just simply doing it here.
70
72
 
71
73
import bzrlib
72
74
 
73
 
from bzrlib.symbol_versioning import (
74
 
    deprecated_function,
75
 
    deprecated_in,
76
 
    )
77
 
 
78
75
lazy_import(globals(), """
79
76
from bzrlib import (
80
77
    debug,
127
124
    _bzr_logger.warning(*args, **kwargs)
128
125
 
129
126
 
130
 
@deprecated_function(deprecated_in((2, 1, 0)))
131
 
def info(*args, **kwargs):
132
 
    """Deprecated: use trace.note instead."""
133
 
    note(*args, **kwargs)
134
 
 
135
 
 
136
 
@deprecated_function(deprecated_in((2, 1, 0)))
137
 
def log_error(*args, **kwargs):
138
 
    """Deprecated: use bzrlib.trace.show_error instead"""
139
 
    _bzr_logger.error(*args, **kwargs)
140
 
 
141
 
 
142
 
@deprecated_function(deprecated_in((2, 1, 0)))
143
 
def error(*args, **kwargs):
144
 
    """Deprecated: use bzrlib.trace.show_error instead"""
145
 
    _bzr_logger.error(*args, **kwargs)
146
 
 
147
 
 
148
127
def show_error(*args, **kwargs):
149
128
    """Show an error message to the user.
150
129
 
215
194
 
216
195
 
217
196
def _get_bzr_log_filename():
218
 
    bzr_log = os.environ.get('BZR_LOG')
 
197
    bzr_log = osutils.path_from_environ('BZR_LOG')
219
198
    if bzr_log:
220
199
        return bzr_log
221
 
    home = os.environ.get('BZR_HOME')
 
200
    home = osutils.path_from_environ('BZR_HOME')
222
201
    if home is None:
223
 
        if sys.platform == 'win32':
224
 
            from bzrlib import win32utils
225
 
            home = win32utils.get_home_location()
226
 
        else:
227
 
            home = os.path.expanduser('~')
 
202
        # GZ 2012-02-01: Logging to the home dir is bad, but XDG is unclear
 
203
        #                over what would be better. On windows, bug 240550
 
204
        #                suggests LOCALAPPDATA be used instead.
 
205
        home = osutils._get_home_dir()
228
206
    return os.path.join(home, '.bzr.log')
229
207
 
230
208
 
506
484
        print_exception(exc_info, err_file)
507
485
        return errors.EXIT_ERROR
508
486
    exc_type, exc_object, exc_tb = exc_info
509
 
    if (isinstance(exc_object, IOError)
510
 
        and getattr(exc_object, 'errno', None) == errno.EPIPE):
511
 
        err_file.write("bzr: broken pipe\n")
512
 
        return errors.EXIT_ERROR
513
 
    elif isinstance(exc_object, KeyboardInterrupt):
 
487
    if isinstance(exc_object, KeyboardInterrupt):
514
488
        err_file.write("bzr: interrupted\n")
515
489
        return errors.EXIT_ERROR
516
490
    elif isinstance(exc_object, MemoryError):
528
502
    elif not getattr(exc_object, 'internal_error', True):
529
503
        report_user_error(exc_info, err_file)
530
504
        return errors.EXIT_ERROR
531
 
    elif isinstance(exc_object, (OSError, IOError)) or (
532
 
        # GZ 2010-05-20: Like (exc_type is pywintypes.error) but avoid import
533
 
        exc_type.__name__ == "error" and exc_type.__module__ == "pywintypes"):
 
505
    elif osutils.is_environment_error(exc_object):
 
506
        if getattr(exc_object, 'errno', None) == errno.EPIPE:
 
507
            err_file.write("bzr: broken pipe\n")
 
508
            return errors.EXIT_ERROR
534
509
        # Might be nice to catch all of these and show them as something more
535
510
        # specific, but there are too many cases at the moment.
536
511
        report_user_error(exc_info, err_file)
574
549
    try:
575
550
        sys.stdout.flush()
576
551
        sys.stderr.flush()
 
552
    except ValueError, e:
 
553
        # On Windows, I get ValueError calling stdout.flush() on a closed
 
554
        # handle
 
555
        pass
577
556
    except IOError, e:
578
557
        import errno
579
558
        if e.errno in [errno.EINVAL, errno.EPIPE]: