~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/trace.py

  • Committer: Alexander Belchenko
  • Date: 2012-03-29 08:34:13 UTC
  • mto: (6015.44.14 2.4)
  • mto: This revision was merged to the branch mainline in revision 6513.
  • Revision ID: bialix@ukr.net-20120329083413-d4bqqdtfn2yrxp4f
change st_dev, st_ino, st_uid, st_gid from int members to properties.

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
 
 
50
48
# FIXME: Unfortunately it turns out that python's logging module
51
49
# is quite expensive, even when the message is not printed by any handlers.
52
50
# We should perhaps change back to just simply doing it here.
72
70
 
73
71
import bzrlib
74
72
 
 
73
from bzrlib.symbol_versioning import (
 
74
    deprecated_function,
 
75
    deprecated_in,
 
76
    )
 
77
 
75
78
lazy_import(globals(), """
76
79
from bzrlib import (
77
80
    debug,
124
127
    _bzr_logger.warning(*args, **kwargs)
125
128
 
126
129
 
 
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
 
127
148
def show_error(*args, **kwargs):
128
149
    """Show an error message to the user.
129
150
 
194
215
 
195
216
 
196
217
def _get_bzr_log_filename():
197
 
    bzr_log = osutils.path_from_environ('BZR_LOG')
 
218
    bzr_log = os.environ.get('BZR_LOG')
198
219
    if bzr_log:
199
220
        return bzr_log
200
 
    home = osutils.path_from_environ('BZR_HOME')
 
221
    home = os.environ.get('BZR_HOME')
201
222
    if home is None:
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()
 
223
        if sys.platform == 'win32':
 
224
            from bzrlib import win32utils
 
225
            home = win32utils.get_home_location()
 
226
        else:
 
227
            home = os.path.expanduser('~')
206
228
    return os.path.join(home, '.bzr.log')
207
229
 
208
230
 
484
506
        print_exception(exc_info, err_file)
485
507
        return errors.EXIT_ERROR
486
508
    exc_type, exc_object, exc_tb = exc_info
487
 
    if isinstance(exc_object, KeyboardInterrupt):
 
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):
488
514
        err_file.write("bzr: interrupted\n")
489
515
        return errors.EXIT_ERROR
490
516
    elif isinstance(exc_object, MemoryError):
502
528
    elif not getattr(exc_object, 'internal_error', True):
503
529
        report_user_error(exc_info, err_file)
504
530
        return errors.EXIT_ERROR
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
 
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"):
509
534
        # Might be nice to catch all of these and show them as something more
510
535
        # specific, but there are too many cases at the moment.
511
536
        report_user_error(exc_info, err_file)
549
574
    try:
550
575
        sys.stdout.flush()
551
576
        sys.stderr.flush()
552
 
    except ValueError, e:
553
 
        # On Windows, I get ValueError calling stdout.flush() on a closed
554
 
        # handle
555
 
        pass
556
577
    except IOError, e:
557
578
        import errno
558
579
        if e.errno in [errno.EINVAL, errno.EPIPE]: