Skip to content

Commit b46779e

Browse files
committed
Addressed code review feedback
1 parent ae3ece3 commit b46779e

File tree

3 files changed

+12
-6
lines changed

3 files changed

+12
-6
lines changed

google/cloud/logging_v2/handlers/handlers.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -190,6 +190,7 @@ def __init__(
190190
self.client = client
191191
client._handlers.add(self)
192192
self.transport = transport(client, name, resource=resource)
193+
self.transport_open = True
193194
self._transport_cls = transport
194195
self.project_id = client.project
195196
self.resource = resource
@@ -215,10 +216,11 @@ def emit(self, record):
215216
labels = {**add_resource_labels(resource, record), **(labels or {})} or None
216217

217218
# send off request
218-
if self.transport is None:
219+
if not self.transport_open:
219220
self.transport = self._transport_cls(
220221
self.client, self.name, resource=self.resource
221222
)
223+
self.transport_open = True
222224

223225
self.transport.send(
224226
record,
@@ -238,13 +240,15 @@ def flush(self):
238240
For SyncTransport, this is a no-op.
239241
"""
240242
super(CloudLoggingHandler, self).flush()
241-
if self.transport is not None:
243+
if self.transport_open:
242244
self.transport.flush()
243245

244246
def close(self):
245247
"""Closes the log handler and cleans up all Transport objects used."""
246248
self.transport.close()
247249
self.transport = None
250+
self.transport_open = False
251+
248252

249253

250254
def _format_and_parse_message(record, formatter_handler):

google/cloud/logging_v2/handlers/transports/background_thread.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,8 @@
4141
_CLOSE_THREAD_SHUTDOWN_ERROR_MSG = (
4242
"CloudLoggingHandler shutting down, cannot send logs entries to Cloud Logging due to "
4343
"inconsistent threading behavior at shutdown. To avoid this issue, flush the logging handler "
44-
"manually or switch to StructuredLogHandler."
44+
"manually or switch to StructuredLogHandler. You can also close the CloudLoggingHandler manually "
45+
"via handler.close or client.close."
4546
)
4647

4748

tests/unit/handlers/test_handlers.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -461,6 +461,7 @@ def test_ctor_defaults(self):
461461
self.assertEqual(handler.name, DEFAULT_LOGGER_NAME)
462462
self.assertIs(handler.client, client)
463463
self.assertIsInstance(handler.transport, _Transport)
464+
self.assertTrue(handler.transport_open)
464465
self.assertIs(handler.transport.client, client)
465466
self.assertEqual(handler.transport.name, DEFAULT_LOGGER_NAME)
466467
global_resource = _create_global_resource(self.PROJECT)
@@ -831,10 +832,10 @@ def test_emit_after_close(self):
831832
)
832833

833834
handler.close()
834-
self.assertIsNone(handler.transport)
835+
self.assertFalse(handler.transport_open)
835836

836837
handler.handle(record)
837-
self.assertIsNotNone(handler)
838+
self.assertTrue(handler.transport_open)
838839
self.assertNotEqual(handler.transport, old_transport)
839840
self.assertEqual(
840841
handler.transport.send_called_with,
@@ -897,7 +898,7 @@ def test_close(self):
897898
)
898899
old_transport = handler.transport
899900
handler.close()
900-
self.assertIsNone(handler.transport)
901+
self.assertFalse(handler.transport_open)
901902
self.assertTrue(old_transport.close_called)
902903

903904

0 commit comments

Comments
 (0)