@@ -96,7 +96,7 @@ def batch(self, client=None):
9696 def _make_entry_resource (self , text = None , info = None , message = None ,
9797 labels = None , insert_id = None , severity = None ,
9898 http_request = None , timestamp = None ,
99- resource = _GLOBAL_RESOURCE ):
99+ resource = _GLOBAL_RESOURCE , trace = None ):
100100 """Return a log entry resource of the appropriate type.
101101
102102 Helper for :meth:`log_text`, :meth:`log_struct`, and :meth:`log_proto`.
@@ -131,6 +131,9 @@ def _make_entry_resource(self, text=None, info=None, message=None,
131131 :type resource: :class:`~google.cloud.logging.resource.Resource`
132132 :param resource: (Optional) Monitored resource of the entry
133133
134+ :type trace: str
135+ :param trace: (optional) traceid to apply to the entry.
136+
134137 :rtype: dict
135138 :returns: The JSON resource created.
136139 """
@@ -172,11 +175,14 @@ def _make_entry_resource(self, text=None, info=None, message=None,
172175 if timestamp is not None :
173176 entry ['timestamp' ] = _datetime_to_rfc3339 (timestamp )
174177
178+ if trace is not None :
179+ entry ['trace' ] = trace
180+
175181 return entry
176182
177183 def log_text (self , text , client = None , labels = None , insert_id = None ,
178184 severity = None , http_request = None , timestamp = None ,
179- resource = _GLOBAL_RESOURCE ):
185+ resource = _GLOBAL_RESOURCE , trace = None ):
180186 """API call: log a text message via a POST request
181187
182188 See
@@ -203,22 +209,26 @@ def log_text(self, text, client=None, labels=None, insert_id=None,
203209 :param http_request: (optional) info about HTTP request associated with
204210 the entry
205211
212+ :type timestamp: :class:`datetime.datetime`
213+ :param timestamp: (optional) timestamp of event being logged.
214+
206215 :type resource: :class:`~google.cloud.logging.resource.Resource`
207216 :param resource: Monitored resource of the entry, defaults
208217 to the global resource type.
209218
210- :type timestamp: :class:`datetime.datetime`
211- :param timestamp : (optional) timestamp of event being logged .
219+ :type trace: str
220+ :param trace : (optional) traceid to apply to the entry .
212221 """
213222 client = self ._require_client (client )
214223 entry_resource = self ._make_entry_resource (
215224 text = text , labels = labels , insert_id = insert_id , severity = severity ,
216- http_request = http_request , timestamp = timestamp , resource = resource )
225+ http_request = http_request , timestamp = timestamp , resource = resource ,
226+ trace = trace )
217227 client .logging_api .write_entries ([entry_resource ])
218228
219229 def log_struct (self , info , client = None , labels = None , insert_id = None ,
220230 severity = None , http_request = None , timestamp = None ,
221- resource = _GLOBAL_RESOURCE ):
231+ resource = _GLOBAL_RESOURCE , trace = None ):
222232 """API call: log a structured message via a POST request
223233
224234 See
@@ -245,22 +255,26 @@ def log_struct(self, info, client=None, labels=None, insert_id=None,
245255 :param http_request: (optional) info about HTTP request associated with
246256 the entry.
247257
258+ :type timestamp: :class:`datetime.datetime`
259+ :param timestamp: (optional) timestamp of event being logged.
260+
248261 :type resource: :class:`~google.cloud.logging.resource.Resource`
249262 :param resource: Monitored resource of the entry, defaults
250263 to the global resource type.
251264
252- :type timestamp: :class:`datetime.datetime`
253- :param timestamp : (optional) timestamp of event being logged .
265+ :type trace: str
266+ :param trace : (optional) traceid to apply to the entry .
254267 """
255268 client = self ._require_client (client )
256269 entry_resource = self ._make_entry_resource (
257270 info = info , labels = labels , insert_id = insert_id , severity = severity ,
258- http_request = http_request , timestamp = timestamp , resource = resource )
271+ http_request = http_request , timestamp = timestamp , resource = resource ,
272+ trace = trace )
259273 client .logging_api .write_entries ([entry_resource ])
260274
261275 def log_proto (self , message , client = None , labels = None , insert_id = None ,
262276 severity = None , http_request = None , timestamp = None ,
263- resource = _GLOBAL_RESOURCE ):
277+ resource = _GLOBAL_RESOURCE , trace = None ):
264278 """API call: log a protobuf message via a POST request
265279
266280 See
@@ -287,18 +301,21 @@ def log_proto(self, message, client=None, labels=None, insert_id=None,
287301 :param http_request: (optional) info about HTTP request associated with
288302 the entry.
289303
304+ :type timestamp: :class:`datetime.datetime`
305+ :param timestamp: (optional) timestamp of event being logged.
306+
290307 :type resource: :class:`~google.cloud.logging.resource.Resource`
291308 :param resource: Monitored resource of the entry, defaults
292309 to the global resource type.
293310
294- :type timestamp: :class:`datetime.datetime`
295- :param timestamp : (optional) timestamp of event being logged .
311+ :type trace: str
312+ :param trace : (optional) traceid to apply to the entry .
296313 """
297314 client = self ._require_client (client )
298315 entry_resource = self ._make_entry_resource (
299316 message = message , labels = labels , insert_id = insert_id ,
300317 severity = severity , http_request = http_request , timestamp = timestamp ,
301- resource = resource )
318+ resource = resource , trace = trace )
302319 client .logging_api .write_entries ([entry_resource ])
303320
304321 def delete (self , client = None ):
@@ -392,7 +409,8 @@ def __exit__(self, exc_type, exc_val, exc_tb):
392409 self .commit ()
393410
394411 def log_text (self , text , labels = None , insert_id = None , severity = None ,
395- http_request = None , timestamp = None , resource = _GLOBAL_RESOURCE ):
412+ http_request = None , timestamp = None , resource = _GLOBAL_RESOURCE ,
413+ trace = None ):
396414 """Add a text entry to be logged during :meth:`commit`.
397415
398416 :type text: str
@@ -420,14 +438,17 @@ def log_text(self, text, labels=None, insert_id=None, severity=None,
420438 resource of the batch is used for this entry. If
421439 both this resource and the Batch resource are None,
422440 the API will return an error.
441+
442+ :type trace: str
443+ :param trace: (optional) traceid to apply to the entry.
423444 """
424445 self .entries .append (
425446 ('text' , text , labels , insert_id , severity , http_request ,
426- timestamp , resource ))
447+ timestamp , resource , trace ))
427448
428449 def log_struct (self , info , labels = None , insert_id = None , severity = None ,
429450 http_request = None , timestamp = None ,
430- resource = _GLOBAL_RESOURCE ):
451+ resource = _GLOBAL_RESOURCE , trace = None ):
431452 """Add a struct entry to be logged during :meth:`commit`.
432453
433454 :type info: dict
@@ -455,14 +476,17 @@ def log_struct(self, info, labels=None, insert_id=None, severity=None,
455476 resource of the batch is used for this entry. If
456477 both this resource and the Batch resource are None,
457478 the API will return an error.
479+
480+ :type trace: str
481+ :param trace: (optional) traceid to apply to the entry.
458482 """
459483 self .entries .append (
460484 ('struct' , info , labels , insert_id , severity , http_request ,
461- timestamp , resource ))
485+ timestamp , resource , trace ))
462486
463487 def log_proto (self , message , labels = None , insert_id = None , severity = None ,
464488 http_request = None , timestamp = None ,
465- resource = _GLOBAL_RESOURCE ):
489+ resource = _GLOBAL_RESOURCE , trace = None ):
466490 """Add a protobuf entry to be logged during :meth:`commit`.
467491
468492 :type message: protobuf message
@@ -490,10 +514,13 @@ def log_proto(self, message, labels=None, insert_id=None, severity=None,
490514 resource of the batch is used for this entry. If
491515 both this resource and the Batch resource are None,
492516 the API will return an error.
517+
518+ :type trace: str
519+ :param trace: (optional) traceid to apply to the entry.
493520 """
494521 self .entries .append (
495522 ('proto' , message , labels , insert_id , severity , http_request ,
496- timestamp , resource ))
523+ timestamp , resource , trace ))
497524
498525 def commit (self , client = None ):
499526 """Send saved log entries as a single API call.
@@ -517,7 +544,7 @@ def commit(self, client=None):
517544
518545 entries = []
519546 for (entry_type , entry , labels , iid , severity , http_req ,
520- timestamp , resource ) in self .entries :
547+ timestamp , resource , trace ) in self .entries :
521548 if entry_type == 'text' :
522549 info = {'textPayload' : entry }
523550 elif entry_type == 'struct' :
@@ -544,6 +571,8 @@ def commit(self, client=None):
544571 info ['httpRequest' ] = http_req
545572 if timestamp is not None :
546573 info ['timestamp' ] = _datetime_to_rfc3339 (timestamp )
574+ if trace is not None :
575+ info ['trace' ] = trace
547576 entries .append (info )
548577
549578 client .logging_api .write_entries (entries , ** kwargs )
0 commit comments