From f04d1410880d96fecc362db8bd183a7e1ed7c41f Mon Sep 17 00:00:00 2001 From: Nirbheek Chauhan Date: Thu, 14 Sep 2017 09:53:11 +0530 Subject: logging: Print location of log file on error Similar to configure Closes https://github.com/mesonbuild/meson/issues/2316 --- mesonbuild/mesonmain.py | 6 +++++- mesonbuild/mlog.py | 3 ++- 2 files changed, 7 insertions(+), 2 deletions(-) (limited to 'mesonbuild') diff --git a/mesonbuild/mesonmain.py b/mesonbuild/mesonmain.py index 6acc8d7..1657ddd 100644 --- a/mesonbuild/mesonmain.py +++ b/mesonbuild/mesonmain.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: diff --git a/mesonbuild/mlog.py b/mesonbuild/mlog.py index 659c8f5..18c1e6a 100644 --- a/mesonbuild/mlog.py +++ b/mesonbuild/mlog.py @@ -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 -- cgit v1.1