1818and labels for App Engine logs.
1919"""
2020
21+ import logging
2122import os
2223
2324from google .cloud .logging .handlers ._helpers import get_trace_id
24- from google .cloud .logging .handlers .handlers import CloudLoggingHandler
2525from google .cloud .logging .handlers .transports import BackgroundThreadTransport
2626from google .cloud .logging .resource import Resource
2727
3434_TRACE_ID_LABEL = 'appengine.googleapis.com/trace_id'
3535
3636
37- class AppEngineHandler (CloudLoggingHandler ):
37+ class AppEngineHandler (logging . StreamHandler ):
3838 """A logging handler that sends App Engine-formatted logs to Stackdriver.
3939
4040 :type client: :class:`~google.cloud.logging.client.Client`
@@ -48,13 +48,13 @@ class AppEngineHandler(CloudLoggingHandler):
4848 """
4949
5050 def __init__ (self , client ,
51+ name = _DEFAULT_GAE_LOGGER_NAME ,
5152 transport = BackgroundThreadTransport ):
52- super (AppEngineHandler , self ).__init__ (
53- client ,
54- name = _DEFAULT_GAE_LOGGER_NAME ,
55- transport = transport ,
56- resource = self .get_gae_resource (),
57- labels = self .get_gae_labels ())
53+ super (AppEngineHandler , self ).__init__ ()
54+ self .name = name
55+ self .client = client
56+ self .transport = transport (client , name )
57+ self .resource = self .get_gae_resource ()
5858
5959 def get_gae_resource (self ):
6060 """Return the GAE resource using the environment variables.
@@ -88,3 +88,20 @@ def get_gae_labels(self):
8888 gae_labels [_TRACE_ID_LABEL ] = trace_id
8989
9090 return gae_labels
91+
92+ def emit (self , record ):
93+ """Actually log the specified logging record.
94+
95+ Overrides the default emit behavior of ``StreamHandler``.
96+
97+ See https://docs.python.org/2/library/logging.html#handler-objects
98+
99+ :type record: :class:`logging.LogRecord`
100+ :param record: The record to be logged.
101+ """
102+ message = super (AppEngineHandler , self ).format (record )
103+ self .transport .send (
104+ record ,
105+ message ,
106+ resource = self .resource ,
107+ labels = self .get_gae_labels ())
0 commit comments