diff options
author | David Shah <davey1576@gmail.com> | 2018-11-26 09:37:07 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-11-26 09:37:07 +0000 |
commit | 22ac41d6272e66cf68a7e282e7ffe065ab82c5b8 (patch) | |
tree | 576a835841aeb8e93639510248eccd9b472d88ef /common/log.h | |
parent | 98858fe611a149e19e1d679db4a98fe88ff647bc (diff) | |
parent | b035cb9fcf3502c74c769560f02e29adcafe6fd8 (diff) | |
download | nextpnr-22ac41d6272e66cf68a7e282e7ffe065ab82c5b8.tar.gz nextpnr-22ac41d6272e66cf68a7e282e7ffe065ab82c5b8.tar.bz2 nextpnr-22ac41d6272e66cf68a7e282e7ffe065ab82c5b8.zip |
Merge pull request #138 from YosysHQ/refactor_log
Tidy up logging code, add log file support, make timing failures non-fatal errors
Diffstat (limited to 'common/log.h')
-rw-r--r-- | common/log.h | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/common/log.h b/common/log.h index b5fddf53..f1727ac6 100644 --- a/common/log.h +++ b/common/log.h @@ -42,14 +42,21 @@ struct log_execution_error_exception { }; -extern std::vector<FILE *> log_files; -extern std::vector<std::ostream *> log_streams; -extern FILE *log_errfile; +enum class LogLevel +{ + LOG, + INFO, + WARNING, + ERROR, + ALWAYS +}; + +extern std::vector<std::pair<std::ostream *, LogLevel>> log_streams; extern log_write_type log_write_function; -extern bool log_quiet_warnings; extern std::string log_last_error; extern void (*log_error_atexit)(); +extern bool had_nonfatal_error; std::string stringf(const char *fmt, ...); std::string vstringf(const char *fmt, va_list ap); @@ -59,10 +66,8 @@ void log(const char *format, ...) NPNR_ATTRIBUTE(format(printf, 1, 2)); void log_always(const char *format, ...) NPNR_ATTRIBUTE(format(printf, 1, 2)); void log_info(const char *format, ...) NPNR_ATTRIBUTE(format(printf, 1, 2)); void log_warning(const char *format, ...) NPNR_ATTRIBUTE(format(printf, 1, 2)); -void log_warning_noprefix(const char *format, ...) NPNR_ATTRIBUTE(format(printf, 1, 2)); NPNR_NORETURN void log_error(const char *format, ...) NPNR_ATTRIBUTE(format(printf, 1, 2), noreturn); -NPNR_NORETURN void log_cmd_error(const char *format, ...) NPNR_ATTRIBUTE(format(printf, 1, 2), noreturn); - +void log_nonfatal_error(const char *format, ...) NPNR_ATTRIBUTE(format(printf, 1, 2)); void log_break(); void log_flush(); @@ -75,7 +80,6 @@ static inline void log_assert_worker(bool cond, const char *expr, const char *fi NEXTPNR_NAMESPACE_PREFIX log_assert_worker(_assert_expr_, #_assert_expr_, __FILE__, __LINE__) #define log_abort() log_error("Abort in %s:%d.\n", __FILE__, __LINE__) -#define log_ping() log("-- %s:%d %s --\n", __FILE__, __LINE__, __PRETTY_FUNCTION__) NEXTPNR_NAMESPACE_END |