If logging to STDOUT in CLI set $stdout.sync = true #882
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
When running the CLI from non-interactive terminals such as foreman or docker, the logs were not being displayed immediatly because ruby sets
$stdout.sync = false
for these types of terminals by default which causes the log messages to be buffered. This leads to inconsistent behaviour between interactive and non-interactive terminals for the CLI application. By explicitly setting $stdout.sync = true when launching the CLI application we can ensure that STDOUT logging is consistent in both types of terminals.See #879 and #490 for further disscussion.