mirror of
https://github.com/godotengine/godot.git
synced 2025-12-08 06:09:55 +00:00
Logger: Cache 'flush_stdout_on_print' to improve performance, and works before ProjectSettings starts.
ProjectSetting: Now 'application/run/flush_stdout_on_print' requires a restart of the Editor to take effect
(cherry picked from commit 89283b7b53)
This commit is contained in:
parent
279b9f43f3
commit
04fefed904
4 changed files with 18 additions and 4 deletions
|
|
@ -54,6 +54,12 @@ bool Logger::should_log(bool p_err) {
|
|||
return (!p_err || _print_error_enabled) && (p_err || _print_line_enabled);
|
||||
}
|
||||
|
||||
bool Logger::_flush_stdout_on_print = true;
|
||||
|
||||
void Logger::set_flush_stdout_on_print(bool value) {
|
||||
_flush_stdout_on_print = value;
|
||||
}
|
||||
|
||||
void Logger::log_error(const char *p_function, const char *p_file, int p_line, const char *p_code, const char *p_rationale, ErrorType p_type) {
|
||||
if (!should_log(true)) {
|
||||
return;
|
||||
|
|
@ -210,7 +216,7 @@ void RotatedFileLogger::logv(const char *p_format, va_list p_list, bool p_err) {
|
|||
Memory::free_static(buf);
|
||||
}
|
||||
|
||||
if (p_err || !ProjectSettings::get_singleton() || GLOBAL_GET("application/run/flush_stdout_on_print")) {
|
||||
if (p_err || _flush_stdout_on_print) {
|
||||
// Don't always flush when printing stdout to avoid performance
|
||||
// issues when `print()` is spammed in release builds.
|
||||
file->flush();
|
||||
|
|
@ -231,7 +237,7 @@ void StdLogger::logv(const char *p_format, va_list p_list, bool p_err) {
|
|||
vfprintf(stderr, p_format, p_list);
|
||||
} else {
|
||||
vprintf(p_format, p_list);
|
||||
if (!ProjectSettings::get_singleton() || GLOBAL_GET("application/run/flush_stdout_on_print")) {
|
||||
if (_flush_stdout_on_print) {
|
||||
// Don't always flush when printing stdout to avoid performance
|
||||
// issues when `print()` is spammed in release builds.
|
||||
fflush(stdout);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue