1

我正在尝试使用Python 中的Stackdriver Logging 客户端库检索 BigQuery 审核日志。

根据教程,以下代码应该能够获取日志条目:

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'>
....

但是,我找不到任何方法来解析这些对象。

如何解析实际的日志消息?

4

1 回答 1

2

a 的字段在此处ProtobufEntry列出。如果像我在代码中找到的那样使用有效负载。Nonepayload_pb

以下片段对我有用:

from google.cloud import logging

client = logging.Client()
for entry in client.list_entries():
        timestamp = entry.timestamp.isoformat()
        print('* {}: {}'.format
              (timestamp, entry.payload_pb))
于 2018-02-16T12:49:18.893 回答