使用put_logs方法将数据发送到日志服务。
前提条件
您已完成以下操作:
参数说明
def put_logs(self, request):
请求参数
参数 | 类型 | 是否必填 | 说明 |
参数 | 类型 | 是否必填 | 说明 |
request | PutLogsRequest | 是 | put_logs请求参数类。 |
PutLogsRequest参数说明
参数 | 类型 | 是否必填 | 说明 |
参数 | 类型 | 是否必填 | 说明 |
project | String | 是 | Project名称:项目(Project)是日志服务的资源管理单元,是进行多用户隔离与访问控制的主要边界。更多信息,请参见管理Project。 |
logstore | String | 是 | Logstore名称:Logstore是日志服务中日志数据的采集、存储和查询单元。更多信息,请参见管理Logstore。 |
topic | String | 否 | 日志主题。默认值为空字符串。更多信息,请参见日志主题(Topic)。 |
source | String | 否 | 日志发送源。默认为producer所在宿主机的IP。 |
logitems | List | 是 | 要发送的日志内容。 |
hashKey | String | 否 | 根据哈希值决定发送到哪个分区(Shard)。 |
logtags | List | 否 | 键值对标签列表,结构参考LogTag。
|
compress | bool | 否 | 是否压缩日志数据。 |
返回参数
返回参数请参见:PutLogs - 写入日志。
示例代码
from aliyun.log import LogClient
from aliyun.log import PutLogsRequest
from aliyun.log import LogItem
import time
import os
# 本示例从环境变量中获取AccessKey ID和AccessKey Secret
access_key_id = os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_ID', '')
access_key_secret = os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_SECRET', '')
# 日志服务的服务接入点
endpoint = "cn-hangzhou.log.aliyuncs.com"
client = LogClient(endpoint, access_key_id, access_key_secret)
project = "slsproject-1"
logstore = "logstore-1"
topic = "nginx"
source = ""
# 日志内容
contents = [
("user_id", "12345"),
("message", "Error occurred"),
("level", "ERROR")
]
# 创建LogItem实例
timestamp = ""
time_nano_part = int(time.time() * 10**9) % 1000000000
log_item = LogItem(timestamp, time_nano_part, contents)
# 创建LogItem列表
logitems = [log_item]
# 是否压缩日志
compress = True
# 通过设置的哈希值来确定数据应发送到哪个分片(shard)
hashKey = "40000000000000000000000000000000"
# 日志标签
logtags = [("tag_key_1", "tag_value_1"), ("tag_key_2", "tag_value_2")]
def main():
# 构建PutLogsRequest
request = PutLogsRequest(project, logstore, topic, source, logitems, hashKey, compress, logtags)
# 通过put_logs方法上传日志
res = client.put_logs(request)
res.log_print()
if __name__ == '__main__':
main()
示例返回结果
PutLogsResponse:
headers: {'Server': 'AliyunSLS', 'Content-Length': '0', 'Connection': 'keep-alive', 'Access-Control-Allow-Origin': '*', 'Date': 'Mon, 25 Nov 2024 03:27:12 GMT', 'x-log-time': '1732505232', 'x-log-requestid': '6743EE90137BEA564161****'}
Process finished with exit code 0
该文章对您有帮助吗?
- 本页导读 (1)
- 前提条件
- 参数说明
- 请求参数
- 返回参数
- 示例代码
- 示例返回结果