From b550791d9279416525d0de48d22989bcf5397535 Mon Sep 17 00:00:00 2001 From: David Shah Date: Wed, 21 Nov 2018 17:08:45 +0000 Subject: Refactor log code and add log file support Signed-off-by: David Shah --- common/log.h | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) (limited to 'common/log.h') diff --git a/common/log.h b/common/log.h index b5fddf53..de5aa85c 100644 --- a/common/log.h +++ b/common/log.h @@ -42,12 +42,18 @@ struct log_execution_error_exception { }; -extern std::vector log_files; -extern std::vector log_streams; -extern FILE *log_errfile; +enum class LogLevel +{ + LOG, + INFO, + WARNING, + ERROR, + ALWAYS +}; + +extern std::vector> 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)(); @@ -59,9 +65,7 @@ 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_break(); void log_flush(); @@ -75,7 +79,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 -- cgit v1.2.3 From b035cb9fcf3502c74c769560f02e29adcafe6fd8 Mon Sep 17 00:00:00 2001 From: David Shah Date: Mon, 26 Nov 2018 09:22:42 +0000 Subject: Add nonfatal error support and use for timing failures Signed-off-by: David Shah --- common/log.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'common/log.h') diff --git a/common/log.h b/common/log.h index de5aa85c..f1727ac6 100644 --- a/common/log.h +++ b/common/log.h @@ -56,6 +56,7 @@ extern log_write_type log_write_function; 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); @@ -66,7 +67,7 @@ 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)); NPNR_NORETURN void log_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(); -- cgit v1.2.3