python - 如何根据其令牌访问特定的日志条目?
问题描述
我正在尝试编写一个 python 脚本,它将检索新的日志条目并保存最后/最新条目的令牌。此令牌将在下一次运行中使用,并且将检索该令牌条目之后的日志,依此类推。
到目前为止,我有这个:
from google.cloud.logging import Client
projectName = 'my_project'
myFilter = 'resource.type = "cloudsql_database" AND log_id("cloudsql.googleapis.com/mysql.err") AND timestamp>="2021-04-20T00:00:00Z"'
client = Client(project=projectName)
entries = client.list_entries(filter_=myFilter)
fd = open("log_entries.txt", "w")
for entry in entries:
print(entry)
fd.write(str(entry))
fd.close()
示例输出条目:
TextEntry(
log_name='projects/my_project/logs/cloudsql.googleapis.com%2Fmysql.err',
labels=None,
insert_id='s=90fe0e477e6e4e6e8e5017468exxxxxx;
i=1c31xxx;
b=c42a243698784ef88f55dfe5a4xxxxxx;
m=53c40845xxx;
t=5c03646e67xxx;
x=be3568664236fxxx-0-0@a1',
severity='INFO',
http_request=None,
timestamp=datetime.datetime(2021, 4, 20, 2, 50, 33, 830602, tzinfo=<UTC>),
resource=Resource(type='cloudsql_database',
labels={'region': 'us-east4', 'database_id': 'my_project:my_instance_id', 'project_id': 'my_project'}),
trace=None,
span_id=None,
trace_sampled=None,
source_location=None,
operation=None,
logger=<google.cloud.logging_v2.logger.Logger object at 0x0000025FA3XXXXXX>,
payload="2021-04-20T02:50:33.830224Z 63149802 [Note] Aborted connection 63149802 to db: 'my_db' user: 'my_user' host: 'ip_address' (Got an error reading communication packets)"
)
如您所见,没有令牌编号这样的值可以传递给 list_entries 方法。我不确定 list_entries 是否是在我的情况下使用的正确方法。谁能帮我这个?
解决方案
仅当结果多于响应中显示的结果时,才会提供令牌。
确保有更多日志,将pageSize
字段设置为低于 50 的数字(这是默认值)并在此处测试 API 。
如果您仍然没有收到令牌,请使用结果更新问题。
推荐阅读
- jsf - JSF + Myface 404 错误
- c++ - 我应该将 ref 或副本分配给值返回函数吗?
- javascript - 需要帮助组合 jQuery 函数
- laravel - 如何将此查询转换为 laravel eloquent?
- c - Linux 设备驱动程序访问控制
- node.js - MongoDB Count 基于一个字段的输出
- ios - 向 App Store 上被拒绝的应用提交新版本
- r - R闪亮的服务器问题 - 反应性全球环境
- spring-boot - Springboot 2无法初始化插件:接口org.mockito.plugins.MockMaker
- sql - 如何从具有同一表属性的唯一值的表中选择记录?请回答有关oracle sql plus的问题