Skip to content

Commit d7925bd

Browse files
authored
fix: use 'sagemaker' logger instead of root logger (#1745)
1 parent 78f0b8b commit d7925bd

File tree

11 files changed

+35
-28
lines changed

11 files changed

+35
-28
lines changed

src/sagemaker/amazon/amazon_estimator.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -665,7 +665,7 @@ def get_image_uri(region_name, repo_name, repo_version=1):
665665

666666
def _warn_newer_xgboost_image():
667667
"""Print a warning when there is a newer XGBoost image"""
668-
logging.warning(
668+
logger.warning(
669669
"There is a more up to date SageMaker XGBoost image. "
670670
"To use the newer image, please set 'repo_version'="
671671
"'%s'. For example:\n"

src/sagemaker/analytics.py

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,12 @@
2323
from sagemaker.session import Session
2424
from sagemaker.utils import DeferredError
2525

26+
logger = logging.getLogger(__name__)
2627

2728
try:
2829
import pandas as pd
2930
except ImportError as e:
30-
logging.warning("pandas failed to import. Analytics features will be impaired or broken.")
31+
logger.warning("pandas failed to import. Analytics features will be impaired or broken.")
3132
# Any subsequent attempt to use pandas will raise the ImportError
3233
pd = DeferredError(e)
3334

@@ -251,15 +252,13 @@ def training_job_summaries(self, force_refresh=False):
251252
output = []
252253
next_args = {}
253254
for count in range(100):
254-
logging.debug("Calling list_training_jobs_for_hyper_parameter_tuning_job %d", count)
255+
logger.debug("Calling list_training_jobs_for_hyper_parameter_tuning_job %d", count)
255256
raw_result = self._sage_client.list_training_jobs_for_hyper_parameter_tuning_job(
256257
HyperParameterTuningJobName=self.name, MaxResults=100, **next_args
257258
)
258259
new_output = raw_result["TrainingJobSummaries"]
259260
output.extend(new_output)
260-
logging.debug(
261-
"Got %d more TrainingJobs. Total so far: %d", len(new_output), len(output)
262-
)
261+
logger.debug("Got %d more TrainingJobs. Total so far: %d", len(new_output), len(output))
263262
if ("NextToken" in raw_result) and (len(new_output) > 0):
264263
next_args["NextToken"] = raw_result["NextToken"]
265264
else:
@@ -373,7 +372,7 @@ def _fetch_metric(self, metric_name):
373372
}
374373
raw_cwm_data = self._cloudwatch.get_metric_statistics(**request)["Datapoints"]
375374
if len(raw_cwm_data) == 0:
376-
logging.warning("Warning: No metrics called %s found", metric_name)
375+
logger.warning("Warning: No metrics called %s found", metric_name)
377376
return
378377

379378
# Process data: normalize to starting time, and sort.

src/sagemaker/estimator.py

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,8 @@
5959
from sagemaker.utils import base_name_from_image, name_from_base, get_config_value
6060
from sagemaker import vpc_utils
6161

62+
logger = logging.getLogger(__name__)
63+
6264

6365
class EstimatorBase(with_metaclass(ABCMeta, object)):
6466
"""Handle end-to-end Amazon SageMaker training and deployment tasks.
@@ -730,7 +732,7 @@ def model_data(self):
730732
TrainingJobName=self.latest_training_job.name
731733
)["ModelArtifacts"]["S3ModelArtifacts"]
732734
else:
733-
logging.warning(
735+
logger.warning(
734736
"No finished training job found associated with this estimator. Please make sure "
735737
"this estimator is only used for building workflow config"
736738
)
@@ -826,7 +828,7 @@ def delete_endpoint(self):
826828
Raises:
827829
botocore.exceptions.ClientError: If the endpoint does not exist.
828830
"""
829-
logging.warning(
831+
logger.warning(
830832
"estimator.delete_endpoint() will be deprecated in SageMaker Python SDK v2. "
831833
"Please use the delete_endpoint() function on your predictor instead."
832834
)
@@ -908,7 +910,7 @@ def transformer(
908910
tags = tags or self.tags
909911

910912
if self.latest_training_job is None:
911-
logging.warning(
913+
logger.warning(
912914
"No finished training job found associated with this estimator. Please make sure "
913915
"this estimator is only used for building workflow config"
914916
)
@@ -1029,7 +1031,7 @@ def start_new(cls, estimator, inputs, experiment_config):
10291031

10301032
if isinstance(inputs, s3_input):
10311033
if "InputMode" in inputs.config:
1032-
logging.debug(
1034+
logger.debug(
10331035
"Selecting s3_input's input_mode (%s) for TrainingInputMode.",
10341036
inputs.config["InputMode"],
10351037
)
@@ -1279,7 +1281,7 @@ def __init__(
12791281
https://docs.aws.amazon.com/sagemaker/latest/dg/API_AlgorithmSpecification.html#SageMaker-Type-AlgorithmSpecification-EnableSageMakerMetricsTimeSeries
12801282
(default: ``None``).
12811283
"""
1282-
logging.warning(parameter_v2_rename_warning("image_name", "image_uri"))
1284+
logger.warning(parameter_v2_rename_warning("image_name", "image_uri"))
12831285
self.image_name = image_name
12841286
self.hyperparam_dict = hyperparameters.copy() if hyperparameters else {}
12851287
super(Estimator, self).__init__(
@@ -1653,7 +1655,7 @@ def __init__(
16531655
self.code_location = code_location
16541656
self.image_name = image_name
16551657
if image_name is not None:
1656-
logging.warning(parameter_v2_rename_warning("image_name", "image_uri"))
1658+
logger.warning(parameter_v2_rename_warning("image_name", "image_uri"))
16571659

16581660
self.uploaded_code = None
16591661

@@ -2029,7 +2031,7 @@ def transformer(
20292031
if env is not None:
20302032
transform_env.update(env)
20312033
else:
2032-
logging.warning(
2034+
logger.warning(
20332035
"No finished training job found associated with this estimator. Please make sure "
20342036
"this estimator is only used for building workflow config"
20352037
)

src/sagemaker/fw_registry.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,13 @@
1212
# language governing permissions and limitations under the License.
1313
"""Placeholder docstring"""
1414
from __future__ import absolute_import
15+
1516
import logging
1617

1718
from sagemaker.utils import get_ecr_image_uri_prefix
1819

20+
logger = logging.getLogger(__name__)
21+
1922
image_registry_map = {
2023
"us-west-1": {
2124
"sparkml-serving": "746614075791",
@@ -142,7 +145,7 @@ def registry(region_name, framework=None):
142145
account_id = image_registry_map[region_name][framework]
143146
return get_ecr_image_uri_prefix(account_id, region_name)
144147
except KeyError:
145-
logging.error("The specific image or region does not exist")
148+
logger.error("The specific image or region does not exist")
146149
raise
147150

148151

src/sagemaker/local/entities.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,16 +25,15 @@
2525
from sagemaker.local.utils import copy_directory_structure, move_to_destination
2626
from sagemaker.utils import DeferredError, get_config_value
2727

28+
logger = logging.getLogger(__name__)
29+
2830
try:
2931
import urllib3
3032
except ImportError as e:
31-
logging.warning("urllib3 failed to import. Local mode features will be impaired or broken.")
33+
logger.warning("urllib3 failed to import. Local mode features will be impaired or broken.")
3234
# Any subsequent attempt to use urllib3 will raise the ImportError
3335
urllib3 = DeferredError(e)
3436

35-
36-
logger = logging.getLogger(__name__)
37-
3837
_UNUSED_ARN = "local:arn-does-not-matter"
3938
HEALTH_CHECK_TIMEOUT_LIMIT = 120
4039

src/sagemaker/local/image.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -473,7 +473,7 @@ def _generate_compose_file(self, command, additional_volumes=None, additional_en
473473
try:
474474
import yaml
475475
except ImportError as e:
476-
logging.error(sagemaker.utils._module_import_error("yaml", "Local mode", "local"))
476+
logger.error(sagemaker.utils._module_import_error("yaml", "Local mode", "local"))
477477
raise e
478478

479479
yaml_content = yaml.dump(content, default_flow_style=False)

src/sagemaker/local/local_session.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -327,7 +327,7 @@ def __init__(self, config=None):
327327
try:
328328
import urllib3
329329
except ImportError as e:
330-
logging.error(_module_import_error("urllib3", "Local mode", "local"))
330+
logger.error(_module_import_error("urllib3", "Local mode", "local"))
331331
raise e
332332

333333
self.http = urllib3.PoolManager()
@@ -423,7 +423,7 @@ def _initialize(self, boto_session, sagemaker_client, sagemaker_runtime_client):
423423
try:
424424
import yaml
425425
except ImportError as e:
426-
logging.error(_module_import_error("yaml", "Local mode", "local"))
426+
logger.error(_module_import_error("yaml", "Local mode", "local"))
427427
raise e
428428

429429
self.config = yaml.load(open(sagemaker_config_file, "r"))

src/sagemaker/tensorflow/estimator.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -856,7 +856,7 @@ def transformer(
856856
role = role or self.role
857857

858858
if self.latest_training_job is None:
859-
logging.warning(
859+
logger.warning(
860860
"No finished training job found associated with this estimator. Please make sure "
861861
"this estimator is only used for building workflow config"
862862
)

src/sagemaker/tensorflow/serving.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@
2121
from sagemaker.predictor import json_serializer, json_deserializer
2222
from sagemaker.tensorflow.defaults import TF_VERSION
2323

24+
logger = logging.getLogger(__name__)
25+
2426

2527
class Predictor(sagemaker.RealTimePredictor):
2628
"""A ``RealTimePredictor`` implementation for inference against TensorFlow
@@ -255,7 +257,7 @@ def _get_container_env(self):
255257
return self.env
256258

257259
if self._container_log_level not in Model.LOG_LEVEL_MAP:
258-
logging.warning("ignoring invalid container log level: %s", self._container_log_level)
260+
logger.warning("ignoring invalid container log level: %s", self._container_log_level)
259261
return self.env
260262

261263
env = dict(self.env)

src/sagemaker/tuner.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,8 @@
5454
PARENT_HYPERPARAMETER_TUNING_JOBS = "ParentHyperParameterTuningJobs"
5555
WARM_START_TYPE = "WarmStartType"
5656

57+
logger = logging.getLogger(__name__)
58+
5759

5860
class WarmStartTypes(Enum):
5961
"""Warm Start Configuration type. There can be two types of warm start jobs:
@@ -840,7 +842,7 @@ def delete_endpoint(self, endpoint_name=None):
840842
Args:
841843
endpoint_name (str): Name of the endpoint to delete
842844
"""
843-
logging.warning(
845+
logger.warning(
844846
"HyperparameterTuner.delete_endpoint() will be deprecated in SageMaker Python SDK v2. "
845847
"Please use the delete_endpoint() function on your predictor instead."
846848
)
@@ -1459,7 +1461,7 @@ def start_new(cls, tuner, inputs):
14591461
information about the started job.
14601462
"""
14611463

1462-
logging.info("_TuningJob.start_new!!!")
1464+
logger.info("_TuningJob.start_new!!!")
14631465

14641466
warm_start_config_req = None
14651467
if tuner.warm_start_config:
@@ -1529,7 +1531,7 @@ def _prepare_training_config(
15291531

15301532
if isinstance(inputs, s3_input):
15311533
if "InputMode" in inputs.config:
1532-
logging.debug(
1534+
logger.debug(
15331535
"Selecting s3_input's input_mode (%s) for TrainingInputMode.",
15341536
inputs.config["InputMode"],
15351537
)

0 commit comments

Comments
 (0)