[Pkg-bazaar-commits] ./bzr/unstable r257: - Write less startup junk to .bzr.log
Martin Pool
mbp at sourcefrog.net
Fri Apr 10 07:43:55 UTC 2009
------------------------------------------------------------
revno: 257
committer: Martin Pool <mbp at sourcefrog.net>
timestamp: Fri 2005-04-15 12:29:03 +1000
message:
- Write less startup junk to .bzr.log
- Clean up trace.py code.
- Write pids into log to help with concurrent execution.
modified:
NEWS
bzrlib/commands.py
bzrlib/trace.py
-------------- next part --------------
=== modified file 'NEWS'
--- a/NEWS 2005-04-15 01:32:17 +0000
+++ b/NEWS 2005-04-15 02:29:03 +0000
@@ -39,6 +39,8 @@
* Write profile data to a temporary file not into working
directory and delete it when done.
+ * Smaller .bzr.log with process ids.
+
PORTABILITY:
=== modified file 'bzrlib/commands.py'
--- a/bzrlib/commands.py 2005-04-15 01:32:17 +0000
+++ b/bzrlib/commands.py 2005-04-15 02:29:03 +0000
@@ -953,8 +953,8 @@
return 0
cmd = args.pop(0)
except IndexError:
- log_error('usage: bzr COMMAND\n')
- log_error(' try "bzr help"\n')
+ log_error('usage: bzr COMMAND')
+ log_error(' try "bzr help"')
return 1
try:
@@ -1024,16 +1024,16 @@
ret = run_bzr(argv)
return ret
except BzrError, e:
- log_error('bzr: error: ' + e.args[0] + '\n')
+ log_error('bzr: error: ' + e.args[0])
if len(e.args) > 1:
for h in e.args[1]:
- log_error(' ' + h + '\n')
+ log_error(' ' + h)
traceback.print_exc(None, bzrlib.trace._tracefile)
- log_error('(see $HOME/.bzr.log for debug information)\n')
+ log_error('(see ~/.bzr.log for debug information)')
return 1
except Exception, e:
- log_error('bzr: exception: %s\n' % e)
- log_error('(see $HOME/.bzr.log for debug information)\n')
+ log_error('bzr: exception: %s' % str(e).rstrip('\n'))
+ log_error('(see $HOME/.bzr.log for debug information)')
traceback.print_exc(None, bzrlib.trace._tracefile)
## traceback.print_exc(None, sys.stderr)
return 1
=== modified file 'bzrlib/trace.py'
--- a/bzrlib/trace.py 2005-04-12 06:27:32 +0000
+++ b/bzrlib/trace.py 2005-04-15 02:29:03 +0000
@@ -44,32 +44,36 @@
verbose = False
+# fix this if we ever fork within python
+_mypid = os.getpid()
+_logprefix = '[%d] ' % _mypid
+
+
+def _write_trace(msg):
+ _tracefile.write(_logprefix + msg + '\n')
+
+
def warning(msg):
- b = 'bzr: warning: ' + msg + '\n'
- sys.stderr.write(b)
- _tracefile.write(b)
- #_tracefile.flush()
-
-def mutter(msg):
- _tracefile.write(msg)
- _tracefile.write('\n')
- # _tracefile.flush()
- if verbose:
- sys.stderr.write('- ' + msg + '\n')
+ sys.stderr.write('bzr: warning: ' + msg + '\n')
+ _write_trace('warning: ' + msg)
+
+
+mutter = _write_trace
def note(msg):
b = '* ' + str(msg) + '\n'
if not silent:
sys.stderr.write(b)
- _tracefile.write(b)
- # _tracefile.flush()
+ _write_trace('note: ' + msg)
def log_error(msg):
- sys.stderr.write(msg)
- _tracefile.write(msg)
- # _tracefile.flush()
+ sys.stderr.write(msg + '\n')
+ _write_trace(msg)
+
+
+# TODO: Something to log exceptions in here.
@@ -85,9 +89,14 @@
_starttime = os.times()[4]
- # XXX: Does this always work on Windows?
+ # TODO: If the file exists and is too large, rename it to .old;
+ # must handle failures of this because we can't rename an open
+ # file on Windows.
+
trace_fname = os.path.join(os.path.expanduser('~/.bzr.log'))
- _tracefile = codecs.open(trace_fname, 'at', 'utf8')
+
+ # buffering=1 means line buffered
+ _tracefile = codecs.open(trace_fname, 'at', 'utf8', buffering=1)
t = _tracefile
if os.fstat(t.fileno())[stat.ST_SIZE] == 0:
@@ -98,16 +107,13 @@
# TODO: If we failed to create the file, perhaps give a warning
# but don't abort; send things to /dev/null instead?
-
- t.write('-' * 60 + '\n')
- t.write('bzr invoked at %s\n' % bzrlib.osutils.format_date(time.time()))
- t.write(' version: %s\n' % bzrlib.__version__)
- t.write(' by %s on %s\n' % (bzrlib.osutils.username(), socket.getfqdn()))
- t.write(' arguments: %r\n' % argv)
- t.write(' working dir: %s\n' % os.getcwdu())
+ _write_trace('bzr %s invoked on python %s (%s)'
+ % (bzrlib.__version__,
+ '.'.join(map(str, sys.version_info)),
+ sys.platform))
- t.write(' platform: %s\n' % sys.platform)
- t.write(' python: %s\n' % (sys.version_info,))
+ _write_trace(' arguments: %r' % argv)
+ _write_trace(' working dir: ' + os.getcwdu())
import atexit
atexit.register(_close_trace)
More information about the Pkg-bazaar-commits
mailing list