From 5ae6161314b0728ced04226b615bd5bf13cb2424 Mon Sep 17 00:00:00 2001 From: Kevin Zheng Date: Mon, 24 Jun 2024 19:02:34 +0000 Subject: [PATCH 1/2] feat!: Use StructuredLogHandler on App Engine instead of CloudLoggingHandler --- google/cloud/logging_v2/client.py | 25 +++++++++++++++---------- tests/unit/test_client.py | 6 ++---- 2 files changed, 17 insertions(+), 14 deletions(-) diff --git a/google/cloud/logging_v2/client.py b/google/cloud/logging_v2/client.py index 94c1e6ca7..c3f0a55d2 100644 --- a/google/cloud/logging_v2/client.py +++ b/google/cloud/logging_v2/client.py @@ -376,18 +376,23 @@ def get_default_handler(self, **kw): """ monitored_resource = kw.pop("resource", detect_resource(self.project)) - if isinstance(monitored_resource, Resource): - if monitored_resource.type == _GAE_RESOURCE_TYPE: - return CloudLoggingHandler(self, resource=monitored_resource, **kw) - elif monitored_resource.type == _GKE_RESOURCE_TYPE: - return StructuredLogHandler(**kw, project_id=self.project) - elif monitored_resource.type == _GCF_RESOURCE_TYPE: + _structured_log_types = [ + _GAE_RESOURCE_TYPE, + _GKE_RESOURCE_TYPE, + _GCF_RESOURCE_TYPE, + _RUN_RESOURCE_TYPE + ] + + if isinstance(monitored_resource, Resource) and monitored_resource.type in _structured_log_types: + if monitored_resource.type == _GCF_RESOURCE_TYPE: # __stdout__ stream required to support structured logging on Python 3.7 kw["stream"] = kw.get("stream", sys.__stdout__) - return StructuredLogHandler(**kw, project_id=self.project) - elif monitored_resource.type == _RUN_RESOURCE_TYPE: - return StructuredLogHandler(**kw, project_id=self.project) - return CloudLoggingHandler(self, resource=monitored_resource, **kw) + + handler = StructuredLogHandler(**kw, project_id=self.project) + else: + handler = CloudLoggingHandler(self, resource=monitored_resource, **kw) + + return handler def setup_logging( self, *, log_level=logging.INFO, excluded_loggers=EXCLUDED_LOGGER_DEFAULTS, **kw diff --git a/tests/unit/test_client.py b/tests/unit/test_client.py index 2d12a283e..dc74009f0 100644 --- a/tests/unit/test_client.py +++ b/tests/unit/test_client.py @@ -766,7 +766,7 @@ def test_get_default_handler_app_engine(self): import os from google.cloud._testing import _Monkey from google.cloud.logging_v2.handlers._monitored_resources import _GAE_ENV_VARS - from google.cloud.logging.handlers import CloudLoggingHandler + from google.cloud.logging.handlers import StructuredLogHandler credentials = _make_credentials() client = self._make_one( @@ -778,9 +778,7 @@ def test_get_default_handler_app_engine(self): with _Monkey(os, environ=gae_env_vars): handler = client.get_default_handler() - handler.transport.worker.stop() - - self.assertIsInstance(handler, CloudLoggingHandler) + self.assertIsInstance(handler, StructuredLogHandler) def test_get_default_handler_container_engine(self): from google.cloud.logging.handlers import StructuredLogHandler From 9f4bfe84bf8bac3342b967dda1d305bf117fbd2b Mon Sep 17 00:00:00 2001 From: Kevin Zheng Date: Mon, 24 Jun 2024 20:05:14 +0000 Subject: [PATCH 2/2] linting --- google/cloud/logging_v2/client.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/google/cloud/logging_v2/client.py b/google/cloud/logging_v2/client.py index c3f0a55d2..13aca9e6b 100644 --- a/google/cloud/logging_v2/client.py +++ b/google/cloud/logging_v2/client.py @@ -380,18 +380,21 @@ def get_default_handler(self, **kw): _GAE_RESOURCE_TYPE, _GKE_RESOURCE_TYPE, _GCF_RESOURCE_TYPE, - _RUN_RESOURCE_TYPE + _RUN_RESOURCE_TYPE, ] - if isinstance(monitored_resource, Resource) and monitored_resource.type in _structured_log_types: + if ( + isinstance(monitored_resource, Resource) + and monitored_resource.type in _structured_log_types + ): if monitored_resource.type == _GCF_RESOURCE_TYPE: # __stdout__ stream required to support structured logging on Python 3.7 kw["stream"] = kw.get("stream", sys.__stdout__) - + handler = StructuredLogHandler(**kw, project_id=self.project) else: handler = CloudLoggingHandler(self, resource=monitored_resource, **kw) - + return handler def setup_logging(