Skip to content

Rich logging still auto-enabled in sagemaker.core #5561

@kmanuwai

Description

@kmanuwai

PySDK Version
PySDK V3

Describe the bug

sagemaker/core/init.py:4 unconditionally calls enable_textual_rich_console_and_traceback() at import time, which installs Rich tracebacks (rich.traceback.install) and replaces the root logger with RichHandler the moment sagemaker is imported.

aws/sagemaker-core#325 (merged Aug 2025) fixed this in the standalone sagemaker-core package by making Rich opt-in, but that change was never applied to the bundled copy in sagemaker-python-sdk.

To reproduce


import sagemaker

# Rich tracebacks are now globally installed
# Rich logging handler is now the root handler
# Any SageMaker job output (processing, training) renders with Rich formatting

from sagemaker.core.helper.session_helper import Session
from sagemaker.core.processing import FrameworkProcessor

sess = Session()

processor = FrameworkProcessor(
    image_uri="<any-image>",
    role="<any-role>",
    instance_type="ml.m5.xlarge",
    instance_count=1,
)

processor.run(code="script.py", source_dir="source_dir", wait=True)
# Output is non-scrollable Rich-formatted text in Jupyter

Expected behavior

Rich logging should be opt-in (as intended by sagemaker-core#325), not automatically enabled on import. Job outputs in Jupyter notebooks should be scrollable plain text by default.

Screenshots or logs

Image

System information
SageMaker Python SDK version: 3.4.1 (sagemaker-core 2.4.1)
Python version: 3.11

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions