我一直在python中使用 Google apiclient library 用于各种Google Cloud API - 主要用于Google Compute - 取得了巨大的成功。
我想开始使用该库来创建和控制Google云端平台提供的 Google Logging机制。
但是,这是一个测试版,我找不到任何关于如何使用日志API的真实文档或示例。
我能找到的是高级描述,例如: https://developers.google.com/apis-explorer/#p/logging/v1beta3/
有人可以提供一个关于如何使用 apiclient 进行日志记录的简单示例吗? 例如,创建一个新的日志条目......
感谢您的帮助
沙哈尔
答案 0 :(得分:0)
我找到了这个页面: https://developers.google.com/api-client-library/python/guide/logging
您声明可以执行以下操作来设置日志级别:
import logging
logger = logging.getLogger()
logger.setLevel(logging.INFO)
然而,它似乎对输出没有任何影响,对我来说总是信息。
我也尝试过将httplib2设置为debuglevel 4:
import httplib2
httplib2.debuglevel = 4
但我在日志中看不到任何HTTP标头:/
答案 1 :(得分:0)
我知道这个问题已经过时了,但它得到了一些关注,所以我想它可能值得回答,万一其他人来这里。
谷歌云平台的Stackdriver Logging Client Libraries不再处于测试阶段,因为它们在不久前达到了一般可用性。我分享的链接包含有关安装和使用它们的最相关文档。
运行命令pip install --upgrade google-cloud-logging
后,您将能够使用您的GCP帐户进行身份验证,并使用客户端库。
使用它们就像使用from google.cloud import logging
之类的命令导入库一样简单,然后实例化一个新客户端(默认情况下可以使用它,甚至可以传递项目ID 和凭证显式),最后根据需要使用Logs。
您可能还想访问official library documentation,在那里您可以找到有关如何使用库的所有详细信息,可用的方法和类,以及如何使用大量自我执行大部分操作 - 解释性示例,甚至是如何与Stackdriver Logging交互的不同备选方案之间的比较。
作为一个小例子,让我也分享一个如何检索五个最新日志的片段,这些日志的状态比#34;警告":
更严重# Import the Google Cloud Python client library
from google.cloud import logging
from google.cloud.logging import DESCENDING
# Instantiate a client
logging_client = logging.Client(project = <PROJECT_ID>)
# Set the filter to apply to the logs, this one retrieves GAE logs from the default service with a severity higher than "warning"
FILTER = 'resource.type:gae_app and resource.labels.module_id:default and severity>=WARNING'
i = 0
# List the entries in DESCENDING order and applying the FILTER
for entry in logging_client.list_entries(order_by=DESCENDING, filter_=FILTER): # API call
print('{} - Severity: {}'.format(entry.timestamp, entry.severity))
if (i >= 5):
break
i += 1
请记住,这只是一个简单的示例,使用Logging Client Library可以实现许多功能,因此您应该参考我分享的官方文档页面,以便更深入地了解所有内容的工作原理。
答案 2 :(得分:0)
但是它似乎对输出没有任何影响 始终为我提供信息。
添加日志处理程序,例如:
formatter = logging.Formatter('%(asctime)s %(process)d %(levelname)s: %(message)s')
consoleHandler = logging.StreamHandler()
consoleHandler.setLevel(logging.DEBUG)
consoleHandler.setFormatter(formatter)
logger.addHandler(consoleHandler)