我试图在Python中使用Stackdriver Logging Client Libraries检索BigQuery审核日志。
根据the tutorial,以下代码应该能够获取日志条目:
for entry in client.list_entries():
do_something_with(entry)
但是,这个迭代器只返回ProtobufEntry
,我无法找到如何从该对象获取实际的日志消息。
for entry in client.list_entries():
print type(entry)
上面的代码产生以下输出:
$ python log_test.py
<class 'google.cloud.logging.entries.ProtobufEntry'>
<class 'google.cloud.logging.entries.ProtobufEntry'>
<class 'google.cloud.logging.entries.ProtobufEntry'>
....
但是,我无法找到解析这些对象的方法。
如何解析实际的日志消息?
答案 0 :(得分:2)
列出了ProtobufEntry
的字段here。如果有效负载为None
,请使用payload_pb
,而不是code中的from google.cloud import logging
client = logging.Client()
for entry in client.list_entries():
timestamp = entry.timestamp.isoformat()
print('* {}: {}'.format
(timestamp, entry.payload_pb))
。
以下代码段对我有用:
UPDATE
it_system_additional INNER JOIN
(
SELECT departmentName
FROM it_system_additional
) departments ON departments.DepartmentName = it_system_additional.departmentName
SET it_system_additional.departmentid = departments.departmentId