diff --git a/examples/cxx-api/demomain.cc b/examples/cxx-api/demomain.cc index 7ab9324fa..60cbc77a0 100644 --- a/examples/cxx-api/demomain.cc +++ b/examples/cxx-api/demomain.cc @@ -5,7 +5,7 @@ int main() { - Yosys::log_streams.push_back(&std::cout); + Yosys::log_sinks.push_back(std::make_unique()); Yosys::log_error_stderr = true; Yosys::yosys_setup(); diff --git a/kernel/driver.cc b/kernel/driver.cc index ad07a4967..04ae3f658 100644 --- a/kernel/driver.cc +++ b/kernel/driver.cc @@ -406,6 +406,7 @@ int main(int argc, char **argv) if (log_errfile == NULL) { log_sinks.push_back(std::make_unique()); + log_error_stderr = true; } else { log_sinks.push_back(std::make_unique()); } diff --git a/kernel/log.cc b/kernel/log.cc index cc6641127..f201ebabb 100644 --- a/kernel/log.cc +++ b/kernel/log.cc @@ -102,7 +102,7 @@ void FileLogSink::flush() void ConsoleLogSink::log(const LogMessage &msg) { - FILE *file = msg.severity == LogSeverity::LOG_ERROR ? stderr : stdout; + FILE *file = (msg.severity == LogSeverity::LOG_ERROR && log_error_stderr) ? stderr : stdout; fputs(msg.legacy_msg.c_str(), file); } diff --git a/pyosys/generator.py b/pyosys/generator.py index 3ee19cff0..27ebea624 100644 --- a/pyosys/generator.py +++ b/pyosys/generator.py @@ -132,6 +132,8 @@ global_denylist = frozenset( "log_verific_callback", # incomplete type "yosys_get_tcl_interp", + # unique ptr vector + "log_sinks", } ) pyosys_headers = [ diff --git a/pyosys/wrappers_tpl.cc b/pyosys/wrappers_tpl.cc index 5e35282c0..406ef26c6 100644 --- a/pyosys/wrappers_tpl.cc +++ b/pyosys/wrappers_tpl.cc @@ -168,7 +168,7 @@ namespace pyosys { m.doc() = "python access to libyosys"; if (!yosys_already_setup()) { - log_streams.push_back(&std::cout); + log_sinks.push_back(std::make_unique()); log_error_stderr = true; yosys_setup();