aws / aws/sagemaker-python-sdk

Library logs to stdout on import

Open
#4,387 1 comment 2 reactions 1 assignee Claimed by @nargokul View on GitHub
component: debugger component: pysdk-team type: bug
Dominant language
Python
Stars
2.3k
Forks
1.3k
Avg merge
1d 22h
Merged PRs (30d)
35

Description

**Describe the bug**

Logging to stdout is an undesirable default for a library, especially since tools that use the library will want to control what is written to stdout. For example, imagine a command line program that fetches records from FeatureStore or metadata about training runs and writes the data to stdout so that it can be parsed by other tools like `grep` or `jq` or `awk`.

This is most likely caused by [this line](https://github.com/aws/sagemaker-python-sdk/blob/f60dd3b3710a30f56a19552c1d59a063802a4e62/src/sagemaker/config/config_utils.py#L42).

**To reproduce**

```
import sagemaker
```
This writes to `stdout`:
```
>>> import sagemaker
sagemaker.config INFO - Not applying SDK defaults from location: /etc/xdg/sagemaker/config.yaml
sagemaker.config INFO - Not applying SDK defaults from location: /home/username/.config/sagemaker/config.yaml
```

**Expected behavior**
I would expect this to be written to `stderr` so that it doesn't interfere with regular program output.

**Screenshots or logs**
If applicable, add screenshots or logs to help explain your problem.

**System information**
A description of your system. Please provide:
- **SageMaker Python SDK version**: `'2.198.0'`
- **Framework name (eg. PyTorch) or algorithm (eg. KMeans)**: N/A
- **Framework version**: N/A
- **Python version**: `3.8`
- **CPU or GPU**: `Intel(R) Xeon(R) CPU E5-2686 v4 @ 2.30GHz`
- **Custom Docker image (Y/N)**: N

**Additional context**
Add any other context about the problem here.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.