Redirect stdout to the logger system for the Datalayer service #14346
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 using CLI to stop datalayer, a BrokenPipeError would be displayed on the console.
chia_data_layer: Exception ignored in: <_io.TextIOWrapper name='<stdout>' mode='w' encoding='utf-8'> BrokenPipeError: [Errno 32] Broken pipe
This was caused by some code being run by the process that was
print
ing to stdout, but stdout didn't have anywhere to go.This code creates a fake stream object to redirect stdout to the log file resolves this. This is done conditionally only if stdout is not a TTY. This means that if you directly run the service (
chia_data_layer / start_data_layer
) you will get some prints to stdout - but if you usechia start data
those are redirected to the log systemFixes #13543