赛尔校园公共服务平台 Logo
平台使用
阿里云
百度云
移动云
智算服务
教育生态
登录 →
赛尔校园公共服务平台 Logo
平台使用 阿里云 百度云 移动云 智算服务 教育生态
登录
  1. 首页
  2. 阿里云
  3. 日志服务
  4. 开发参考
  5. 日志服务SDK
  6. Python SDK
  7. 采集日志
  8. 写入日志

写入日志

  • 采集日志
  • 发布于 2025-04-22
  • 0 次阅读
文档编辑
文档编辑

使用put_logs方法将数据发送到日志服务。

前提条件

您已完成以下操作:

  • 开通日志服务。

  • 初始化日志服务Python SDK。

参数说明

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。

[('tag_key_1', 'tag_value_1'), ('tag_key_2', 'tag_value_2')]

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

相关文章

写入日志 2025-04-22 10:35

使用put_logs方法将数据发送到日志服务。 前提条件 您已完成以下操作:

创建Logtail采集配置 2025-04-22 10:35

通过CreateConfig接口创建Logtail采集配置。 前提条件 您已完成以下操作:

查询Logtail采集配置 2025-04-22 10:35

通过GetConfig接口查询Project下的Logtail采集配置。 前提条件 您已完成以下操作:

查询Logtail采集配置列表 2025-04-22 10:35

调用ListConfig接口查询指定Project下所有的Logtail配置。 前提条件 您已完成以下操作:

更新Logtail采集配置 2025-04-22 10:35

通过UpdateConfig接口更新Logtail采集配置。 前提条件 您已完成以下操作:

删除Logtail采集配置 2025-04-22 10:35

通过DeleteConfig接口删除Project下指定Logtail采集配置。 前提条件 您已完成以下操作:

目录
Copyright © 2025 your company All Rights Reserved. Powered by 赛尔网络.
京ICP备14022346号-15
gongan beian 京公网安备11010802041014号