Skip to content

Add option for redirecting stdout and stderr to the system log #126821

Closed
@freakboy3742

Description

@freakboy3742

Feature or enhancement

Proposal:

Python currently assumes that stdout and stderr are streams that are universally available. This is true for most systems.
However, on iOS, stdout/stderr content is only really visible while in Xcode. When an app is running in the wild, the expectation is that the app will use the system log for all output needs.

On iOS, stdout and stderr should be automatically directed to the system log (with appropriate log levels). This matches what Android does by default (see #118063). Existing iOS apps in the wild need to use a shim such as std-nslog to ensure that stdout/err content can be loaded at runtime. This also complicates the iOS testing story, as stdout/stderr content is only visible at the end of a test run, rather than being streamable content as the test runs.

As iOS and macOS share an underlying logging framework, it should also be possible to have this functionality on macOS as well (on an opt-in basis when the Python interpreter is configured). This would be useful for Python code that has been embedded into a native macOS GUI app. At present, stdout and stderr are essentially inaccessible for apps of this type.

Has this already been discussed elsewhere?

This is a minor feature, which does not need previous discussion elsewhere

Links to previous discussion of this feature:

No response

Linked PRs

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions