logging: Print location of log file on error

Similar to configure

Closes https://github.com/mesonbuild/meson/issues/2316
pull/2082/head
Nirbheek Chauhan 8 years ago committed by Jussi Pakkanen
parent c46c1e74ad
commit f04d141088
  1. 6
      mesonbuild/mesonmain.py
  2. 3
      mesonbuild/mlog.py

@ -340,7 +340,7 @@ def run(args, mainfile=None):
dir2 = '.'
try:
if mainfile is None:
sys.exit('I iz broken. Sorry.')
raise AssertionError('I iz broken. Sorry.')
app = MesonApp(dir1, dir2, mainfile, handshake, options, sys.argv)
except Exception as e:
# Log directory does not exist, so just print
@ -356,7 +356,11 @@ def run(args, mainfile=None):
mlog.log(mlog.red('\nMeson encountered an error in file %s, line %d, column %d:' % (e.file, e.lineno, e.colno)))
else:
mlog.log(mlog.red('\nMeson encountered an error:'))
# Error message
mlog.log(e)
# Path to log file
logfile = os.path.join(app.build_dir, environment.Environment.log_dir, mlog.log_fname)
mlog.log("\nA full log can be found at", mlog.bold(logfile))
if os.environ.get('MESON_FORCE_BACKTRACE'):
raise
else:

@ -22,11 +22,12 @@ colorize_console = platform.system().lower() != 'windows' and os.isatty(sys.stdo
os.environ.get('TERM') != 'dumb'
log_dir = None
log_file = None
log_fname = 'meson-log.txt'
def initialize(logdir):
global log_dir, log_file
log_dir = logdir
log_file = open(os.path.join(logdir, 'meson-log.txt'), 'w', encoding='utf8')
log_file = open(os.path.join(logdir, log_fname), 'w', encoding='utf8')
def shutdown():
global log_file

Loading…
Cancel
Save