更新时间:2024-12-20 GMT+08:00

查询日志

功能介绍

该接口用于查询指定日志流下的日志内容。

调用方法

请参见如何调用API

URI

POST /v2/{project_id}/groups/{log_group_id}/streams/{log_stream_id}/content/query

表1 路径参数

参数

是否必选

参数类型

描述

project_id

String

项目ID,获取方式请参见:获取项目ID,获取账号ID,日志组ID、日志流ID

最小长度:32

最大长度:32

log_group_id

String

日志组ID,获取方式请参见:获取项目ID,获取账号ID,日志组ID、日志流ID

最小长度:36

最大长度:36

log_stream_id

String

日志流ID,获取方式请参见:获取项目ID,获取账号ID,日志组ID、日志流ID

最小长度:36

最大长度:36

请求参数

表2 请求Header参数

参数

是否必选

参数类型

描述

X-Auth-Token

String

从IAM服务获取的用户Token,获取方式请参见:获取用户Token

最小长度:1000

最大长度:2000

Content-Type

String

该字段填为:application/json;charset=UTF-8。

最小长度:30

最大长度:30

表3 请求Body参数

参数

是否必选

参数类型

描述

start_time

String

搜索起始时间(UTC时间,毫秒级)。

说明:

查询时间最大为180天。

end_time

String

搜索结束时间(UTC时间,毫秒级)。

说明:

查询时间最大为180天。

labels

Map<String,String>

日志过滤条件集合,不同日志来源所需字段不同。

keywords

String

支持关键词精确搜索。关键词指相邻两个分词符之间的单词,例:error

line_num

String

日志单行序列号,第一次查询时不需要此参数,后续分页查询时需要使用,可从上次查询的返回信息中获取。line_num应在start_time 和end_time之间。 若已开启自定义时间功能,在使用该字段的同时,还需要增加__time__字段共同进行分页查询。

最小长度:19

最大长度:19

__time__

String

若已开启自定义时间功能,需要使用该字段和line_num字段共同进行分页查询,参数可从上次查询的返回信息中获取。

is_desc

Boolean

顺序或者倒序查询, 默认为false(顺序查询)

search_type

String

首次查询为 “init”, 分页查询时为 “forwards”或者“backwards”, 默认为首次查询“init”, 与 is_desc 参数配合进行分页查询。

limit

Integer

表示每次查询的日志条数,不填时默认为50,建议您设置为100。

最小值:1

最大值:5000

highlight

Boolean

日志关键词高亮显示,默认为true(高亮显示),false为取消高亮显示。

缺省值:true

is_count

Boolean

日志条数统计。默认为false(不统计),true为统计日志条数。

is_iterative

Boolean

日志迭代查询,默认为false(不开启迭代),true为开启迭代。

query

String

使用带管道符的sql分析语句进行查询,需要query参数is_analysis_query为true时生效。

is_analysis_query

Boolean

是否为带管道符的sql分析语句。当该参数为true时,将依照body体中的query参数内容进行查询,且body体中除start_time与end_time以外的参数失效,分页、排序、查询结果条数等功能请依照sql语法规则实现。查询结果的响应体不同于未启用时的查询方式,将以默认列存的形式返回查询结果。当前仅对内测用户开放。响应示例:{"analysisLogs":[{"field1":"1","field2":"2","field3":"3"},{"field1":"1","field2":"2","field3":"3"},{"field1":"1","field2":"2","field3":"3"}]} (管道符为邀测功能,非白名单用户默认为false)

响应参数

状态码: 200

表4 响应Body参数

参数

参数类型

描述

logs

Array of LogContents objects

日志信息。

count

Integer

日志条数。

isQueryComplete

Boolean

是否查询完成。

analysisLogs

Array of objects

分析日志返回响应体

表5 LogContents

参数

参数类型

描述

content

String

日志原数据。

最小长度:1

最大长度:10000

line_num

String

日志单行序列号。

最小长度:19

最大长度:19

labels

Map<String,String>

该条日志包含的 labels,查询到的日志不同所包含的字段不同。

状态码: 400

表6 响应Body参数

参数

参数类型

描述

error_code

String

错误码。

error_msg

String

调用失败响应信息描述。

状态码: 401

表7 响应Body参数

参数

参数类型

描述

error_code

String

错误码。

error_msg

String

调用失败响应信息描述。

状态码: 403

表8 响应Body参数

参数

参数类型

描述

error_code

String

错误码。

error_msg

String

调用失败响应信息描述。

状态码: 500

表9 响应Body参数

参数

参数类型

描述

error_code

String

错误码。

error_msg

String

调用失败响应信息描述。

请求示例

  • 首次查询日志

    POST https://{endpoint}/v2/{project_id}/groups/{log_group_id}/streams/{log_stream_id}/content/query 
    
    {
      "start_time" : 1595659200000,
      "end_time" : 1595659500000,
      "labels" : {
        "hostName" : "ecs-kwxtest"
      },
      "keywords" : "log",
      "limit" : 10,
      "is_count" : true
    }
  • 分页查询, 以包含“NO 5”的日志为起始点, 查询 “NO 6”、“NO 7”、“NO 8”

    v2/{project_id}/groups/{log_group_id}/streams/{log_stream_id}/content/query
    
    {
      "start_time" : 1595659200000,
      "end_time" : 1595659500000,
      "labels" : {
        "hostName" : "ecs-kwxtest"
      },
      "keywords" : "log",
      "line_num" : "1595659490239433658",
      "is_desc" : "false",
      "search_type" : "forwards",
      "limit" : "3",
      "is_count" : true
    }
  • 分页查询, 以包含“NO 5”的日志为起始点, 查询“NO 8”、“NO 7”、“NO 6”

    v2/{project_id}/groups/{log_group_id}/streams/{log_stream_id}/content/query
    
    {
      "start_time" : 1595659200000,
      "end_time" : 1595659500000,
      "labels" : {
        "hostName" : "ecs-kwxtest"
      },
      "keywords" : "log",
      "line_num" : "1595659490239433658",
      "is_desc" : "true",
      "search_type" : "backwards",
      "limit" : "3",
      "is_count" : true
    }
  • 分页查询, 以包含“NO 5”的日志为起始点,查询“NO 2”、“NO 3”、“NO 4”

    v2/{project_id}/groups/{log_group_id}/streams/{log_stream_id}/content/query
    
    {
      "start_time" : 1595659200000,
      "end_time" : 1595659500000,
      "labels" : {
        "hostName" : "ecs-kwxtest"
      },
      "keywords" : "log",
      "line_num" : "1595659490239433658",
      "is_desc" : "false",
      "search_type" : "backwards",
      "limit" : "3",
      "is_count" : true
    }
  • 分页查询, 以包含“NO 5”的日志为起始点, 查询 “NO 4”、“NO 3”、“NO 2”

    v2/{project_id}/groups/{log_group_id}/streams/{log_stream_id}/content/query
    
    {
      "start_time" : 1595659200000,
      "end_time" : 1595659500000,
      "labels" : {
        "hostName" : "ecs-kwxtest"
      },
      "keywords" : "log",
      "line_num" : "1595659490239433658",
      "is_desc" : "true",
      "search_type" : "forwards",
      "limit" : "3",
      "is_count" : true
    }
  • 分析语句查询示例。

    v2/{project_id}/groups/{log_group_id}/streams/{log_stream_id}/content/query 
    
    {
      "start_time" : 1722324332801,
      "end_time" : 1722327932801,
      "query" : "* | select field1,field2 from log",
      "is_analysis_query" : true
    }

响应示例

状态码: 200

请求响应成功。

  • 首次查询日志

    {
      "count" : 32,
      "logs" : [ {
        "content" : "2020-07-25/14:44:42 this <HighLightTag>log</HighLightTag> is Error NO 1",
        "labels" : {
          "hostName" : "ecs-kwxtest",
          "hostIP" : "192.168.0.156",
          "appName" : "default_appname",
          "containerName" : "CONFIG_FILE",
          "clusterName" : "CONFIG_FILE",
          "hostId" : "9787ef31-fd7b-4eff-ba71-72d580f11f55",
          "podName" : "default_procname",
          "clusterId" : "CONFIG_FILE",
          "nameSpace" : "CONFIG_FILE",
          "category" : "LTS"
        },
        "line_num" : "1595659490239433654"
      }, {
        "content" : "2020-07-25/14:44:43 this <HighLightTag>log</HighLightTag> is Error NO 2",
        "labels" : {
          "hostName" : "ecs-kwxtest",
          "hostIP" : "192.168.0.156",
          "appName" : "default_appname",
          "containerName" : "CONFIG_FILE",
          "clusterName" : "CONFIG_FILE",
          "hostId" : "9787ef31-fd7b-4eff-ba71-72d580f11f55",
          "podName" : "default_procname",
          "clusterId" : "CONFIG_FILE",
          "nameSpace" : "CONFIG_FILE",
          "category" : "LTS"
        },
        "line_num" : "1595659490239433655"
      }, {
        "content" : "2020-07-25/14:44:44 this <HighLightTag>log</HighLightTag> is Error NO 3",
        "labels" : {
          "hostName" : "ecs-kwxtest",
          "hostIP" : "192.168.0.156",
          "appName" : "default_appname",
          "containerName" : "CONFIG_FILE",
          "clusterName" : "CONFIG_FILE",
          "hostId" : "9787ef31-fd7b-4eff-ba71-72d580f11f55",
          "podName" : "default_procname",
          "clusterId" : "CONFIG_FILE",
          "nameSpace" : "CONFIG_FILE",
          "category" : "LTS"
        },
        "line_num" : "1595659490239433656"
      }, {
        "content" : "2020-07-25/14:44:45 this <HighLightTag>log</HighLightTag> is Error NO 4",
        "labels" : {
          "hostName" : "ecs-kwxtest",
          "hostIP" : "192.168.0.156",
          "appName" : "default_appname",
          "containerName" : "CONFIG_FILE",
          "clusterName" : "CONFIG_FILE",
          "hostId" : "9787ef31-fd7b-4eff-ba71-72d580f11f55",
          "podName" : "default_procname",
          "clusterId" : "CONFIG_FILE",
          "nameSpace" : "CONFIG_FILE",
          "category" : "LTS"
        },
        "line_num" : "1595659490239433657"
      }, {
        "content" : "2020-07-25/14:44:46 this <HighLightTag>log</HighLightTag> is Error NO 5",
        "labels" : {
          "hostName" : "ecs-kwxtest",
          "hostIP" : "192.168.0.156",
          "appName" : "default_appname",
          "containerName" : "CONFIG_FILE",
          "clusterName" : "CONFIG_FILE",
          "hostId" : "9787ef31-fd7b-4eff-ba71-72d580f11f55",
          "podName" : "default_procname",
          "clusterId" : "CONFIG_FILE",
          "nameSpace" : "CONFIG_FILE",
          "category" : "LTS"
        },
        "line_num" : "1595659490239433658"
      }, {
        "content" : "2020-07-25/14:44:47 this <HighLightTag>log</HighLightTag> is Error NO 6",
        "labels" : {
          "hostName" : "ecs-kwxtest",
          "hostIP" : "192.168.0.156",
          "appName" : "default_appname",
          "containerName" : "CONFIG_FILE",
          "clusterName" : "CONFIG_FILE",
          "hostId" : "9787ef31-fd7b-4eff-ba71-72d580f11f55",
          "podName" : "default_procname",
          "clusterId" : "CONFIG_FILE",
          "nameSpace" : "CONFIG_FILE",
          "category" : "LTS"
        },
        "line_num" : "1595659490239433659"
      }, {
        "content" : "2020-07-25/14:44:48 this <HighLightTag>log</HighLightTag> is Error NO 7",
        "labels" : {
          "hostName" : "ecs-kwxtest",
          "hostIP" : "192.168.0.156",
          "appName" : "default_appname",
          "containerName" : "CONFIG_FILE",
          "clusterName" : "CONFIG_FILE",
          "hostId" : "9787ef31-fd7b-4eff-ba71-72d580f11f55",
          "podName" : "default_procname",
          "clusterId" : "CONFIG_FILE",
          "nameSpace" : "CONFIG_FILE",
          "category" : "LTS"
        },
        "line_num" : "1595659490239433660"
      }, {
        "content" : "2020-07-25/14:44:49 this <HighLightTag>log</HighLightTag> is Error NO 8",
        "labels" : {
          "hostName" : "ecs-kwxtest",
          "hostIP" : "192.168.0.156",
          "appName" : "default_appname",
          "containerName" : "CONFIG_FILE",
          "clusterName" : "CONFIG_FILE",
          "hostId" : "9787ef31-fd7b-4eff-ba71-72d580f11f55",
          "podName" : "default_procname",
          "clusterId" : "CONFIG_FILE",
          "nameSpace" : "CONFIG_FILE",
          "category" : "LTS"
        },
        "line_num" : "1595659490239433661"
      }, {
        "content" : "2020-07-25/14:44:50 this <HighLightTag>log</HighLightTag> is Error NO 9",
        "labels" : {
          "hostName" : "ecs-kwxtest",
          "hostIP" : "192.168.0.156",
          "appName" : "default_appname",
          "containerName" : "CONFIG_FILE",
          "clusterName" : "CONFIG_FILE",
          "hostId" : "9787ef31-fd7b-4eff-ba71-72d580f11f55",
          "podName" : "default_procname",
          "clusterId" : "CONFIG_FILE",
          "nameSpace" : "CONFIG_FILE",
          "category" : "LTS"
        },
        "line_num" : "1595659490839420574"
      }, {
        "content" : "2020-07-25/14:44:51 this <HighLightTag>log</HighLightTag> is Error NO 10",
        "labels" : {
          "hostName" : "ecs-kwxtest",
          "hostIP" : "192.168.0.156",
          "appName" : "default_appname",
          "containerName" : "CONFIG_FILE",
          "clusterName" : "CONFIG_FILE",
          "hostId" : "9787ef31-fd7b-4eff-ba71-72d580f11f55",
          "podName" : "default_procname",
          "clusterId" : "CONFIG_FILE",
          "nameSpace" : "CONFIG_FILE",
          "category" : "LTS"
        },
        "line_num" : "1595659491839412667"
      } ]
    }
  • 分页查询, 以包含“NO 5”的日志为起始点, 查询 “NO 6”、“NO 7”、“NO 8”

    {
      "count" : 32,
      "logs" : [ {
        "content" : "2020-07-25/14:44:47 this <HighLightTag>log</HighLightTag> is Error NO 6",
        "labels" : {
          "hostName" : "ecs-kwxtest",
          "hostIP" : "192.168.0.156",
          "appName" : "default_appname",
          "containerName" : "CONFIG_FILE",
          "clusterName" : "CONFIG_FILE",
          "hostId" : "9787ef31-fd7b-4eff-ba71-72d580f11f55",
          "podName" : "default_procname",
          "clusterId" : "CONFIG_FILE",
          "nameSpace" : "CONFIG_FILE",
          "category" : "LTS"
        },
        "line_num" : "1595659490239433659"
      }, {
        "content" : "2020-07-25/14:44:48 this <HighLightTag>log</HighLightTag> is Error NO 7",
        "labels" : {
          "hostName" : "ecs-kwxtest",
          "hostIP" : "192.168.0.156",
          "appName" : "default_appname",
          "containerName" : "CONFIG_FILE",
          "clusterName" : "CONFIG_FILE",
          "hostId" : "9787ef31-fd7b-4eff-ba71-72d580f11f55",
          "podName" : "default_procname",
          "clusterId" : "CONFIG_FILE",
          "nameSpace" : "CONFIG_FILE",
          "category" : "LTS"
        },
        "line_num" : "1595659490239433660"
      }, {
        "content" : "2020-07-25/14:44:49 this <HighLightTag>log</HighLightTag> is Error NO 8",
        "labels" : {
          "hostName" : "ecs-kwxtest",
          "hostIP" : "192.168.0.156",
          "appName" : "default_appname",
          "containerName" : "CONFIG_FILE",
          "clusterName" : "CONFIG_FILE",
          "hostId" : "9787ef31-fd7b-4eff-ba71-72d580f11f55",
          "podName" : "default_procname",
          "clusterId" : "CONFIG_FILE",
          "nameSpace" : "CONFIG_FILE",
          "category" : "LTS"
        },
        "line_num" : "1595659490239433661"
      } ]
    }
  • 分页查询, 以包含“NO 5”的日志为起始点, 查询 “NO 8”、“NO 7”、“NO 6”

    {
      "count" : 32,
      "logs" : [ {
        "content" : "2020-07-25/14:44:49 this <HighLightTag>log</HighLightTag> is Error NO 8",
        "labels" : {
          "hostName" : "ecs-kwxtest",
          "hostIP" : "192.168.0.156",
          "appName" : "default_appname",
          "containerName" : "CONFIG_FILE",
          "clusterName" : "CONFIG_FILE",
          "hostId" : "9787ef31-fd7b-4eff-ba71-72d580f11f55",
          "podName" : "default_procname",
          "clusterId" : "CONFIG_FILE",
          "nameSpace" : "CONFIG_FILE",
          "category" : "LTS"
        },
        "line_num" : "1595659490239433661"
      }, {
        "content" : "2020-07-25/14:44:48 this <HighLightTag>log</HighLightTag> is Error NO 7",
        "labels" : {
          "hostName" : "ecs-kwxtest",
          "hostIP" : "192.168.0.156",
          "appName" : "default_appname",
          "containerName" : "CONFIG_FILE",
          "clusterName" : "CONFIG_FILE",
          "hostId" : "9787ef31-fd7b-4eff-ba71-72d580f11f55",
          "podName" : "default_procname",
          "clusterId" : "CONFIG_FILE",
          "nameSpace" : "CONFIG_FILE",
          "category" : "LTS"
        },
        "line_num" : "1595659490239433660"
      }, {
        "content" : "2020-07-25/14:44:47 this <HighLightTag>log</HighLightTag> is Error NO 6",
        "labels" : {
          "hostName" : "ecs-kwxtest",
          "hostIP" : "192.168.0.156",
          "appName" : "default_appname",
          "containerName" : "CONFIG_FILE",
          "clusterName" : "CONFIG_FILE",
          "hostId" : "9787ef31-fd7b-4eff-ba71-72d580f11f55",
          "podName" : "default_procname",
          "clusterId" : "CONFIG_FILE",
          "nameSpace" : "CONFIG_FILE",
          "category" : "LTS"
        },
        "line_num" : "1595659490239433659"
      } ]
    }
  • 分页查询, 以包含“NO 5”的日志为起始点,查询“NO 2”、“NO 3”、“NO 4”

    {
      "count" : 32,
      "logs" : [ {
        "content" : "2020-07-25/14:44:43 this <HighLightTag>log</HighLightTag> is Error NO 2",
        "labels" : {
          "hostName" : "ecs-kwxtest",
          "hostIP" : "192.168.0.156",
          "appName" : "default_appname",
          "containerName" : "CONFIG_FILE",
          "clusterName" : "CONFIG_FILE",
          "hostId" : "9787ef31-fd7b-4eff-ba71-72d580f11f55",
          "podName" : "default_procname",
          "clusterId" : "CONFIG_FILE",
          "nameSpace" : "CONFIG_FILE",
          "category" : "LTS"
        },
        "line_num" : "1595659490239433655"
      }, {
        "content" : "2020-07-25/14:44:44 this <HighLightTag>log</HighLightTag> is Error NO 3",
        "labels" : {
          "hostName" : "ecs-kwxtest",
          "hostIP" : "192.168.0.156",
          "appName" : "default_appname",
          "containerName" : "CONFIG_FILE",
          "clusterName" : "CONFIG_FILE",
          "hostId" : "9787ef31-fd7b-4eff-ba71-72d580f11f55",
          "podName" : "default_procname",
          "clusterId" : "CONFIG_FILE",
          "nameSpace" : "CONFIG_FILE",
          "category" : "LTS"
        },
        "line_num" : "1595659490239433656"
      }, {
        "content" : "2020-07-25/14:44:45 this <HighLightTag>log</HighLightTag> is Error NO 4",
        "labels" : {
          "hostName" : "ecs-kwxtest",
          "hostIP" : "192.168.0.156",
          "appName" : "default_appname",
          "containerName" : "CONFIG_FILE",
          "clusterName" : "CONFIG_FILE",
          "hostId" : "9787ef31-fd7b-4eff-ba71-72d580f11f55",
          "podName" : "default_procname",
          "clusterId" : "CONFIG_FILE",
          "nameSpace" : "CONFIG_FILE",
          "category" : "LTS"
        },
        "line_num" : "1595659490239433657"
      } ]
    }
  • 分页查询, 以包含“NO 5”的日志为起始点, 查询 “NO 4”、“NO 3”、“NO 2”

    {
      "count" : 32,
      "logs" : [ {
        "content" : "2020-07-25/14:44:45 this <HighLightTag>log</HighLightTag> is Error NO 4",
        "labels" : {
          "hostName" : "ecs-kwxtest",
          "hostIP" : "192.168.0.156",
          "appName" : "default_appname",
          "containerName" : "CONFIG_FILE",
          "clusterName" : "CONFIG_FILE",
          "hostId" : "9787ef31-fd7b-4eff-ba71-72d580f11f55",
          "podName" : "default_procname",
          "clusterId" : "CONFIG_FILE",
          "nameSpace" : "CONFIG_FILE",
          "category" : "LTS"
        },
        "line_num" : "1595659490239433657"
      }, {
        "content" : "2020-07-25/14:44:44 this <HighLightTag>log</HighLightTag> is Error NO 3",
        "labels" : {
          "hostName" : "ecs-kwxtest",
          "hostIP" : "192.168.0.156",
          "appName" : "default_appname",
          "containerName" : "CONFIG_FILE",
          "clusterName" : "CONFIG_FILE",
          "hostId" : "9787ef31-fd7b-4eff-ba71-72d580f11f55",
          "podName" : "default_procname",
          "clusterId" : "CONFIG_FILE",
          "nameSpace" : "CONFIG_FILE",
          "category" : "LTS"
        },
        "line_num" : "1595659490239433656"
      }, {
        "content" : "2020-07-25/14:44:43 this <HighLightTag>log</HighLightTag> is Error NO 2",
        "labels" : {
          "hostName" : "ecs-kwxtest",
          "hostIP" : "192.168.0.156",
          "appName" : "default_appname",
          "containerName" : "CONFIG_FILE",
          "clusterName" : "CONFIG_FILE",
          "hostId" : "9787ef31-fd7b-4eff-ba71-72d580f11f55",
          "podName" : "default_procname",
          "clusterId" : "CONFIG_FILE",
          "nameSpace" : "CONFIG_FILE",
          "category" : "LTS"
        },
        "line_num" : "1595659490239433655"
      } ]
    }

状态码: 400

BadRequest。非法请求或查询语句错误。 建议根据error_msg直接修改该请求,不要重试该请求。

{
  "error_code" : "LTS.0009",
  "error_msg" : "Failed to validate the request body"
}

状态码: 401

AuthFailed。鉴权失败, 请确认token后再次请求 。

{
  "error_code" : "LTS.0003",
  "error_msg" : "Invalid token"
}

状态码: 403

Forbidden。请求被拒绝访问。返回该状态码,表明请求能够到达服务端,且服务端能够理解用户请求,但是拒绝做更多的事情,因为该请求被设置为拒绝访问,建议直接修改该请求,不要重试该请求。

{
  "error_code" : "LTS.0001",
  "error_msg" : "Invalid projectId"
}

状态码: 500

InternalServerError。

表明服务端能被请求访问到,但是服务内部出错。

{
  "error_code" : "LTS.0202",
  "error_msg" : "Failed to query lts log"
}

SDK代码示例

SDK代码示例如下。

  • 首次查询日志

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    package com.huaweicloud.sdk.test;
    
    import com.huaweicloud.sdk.core.auth.ICredential;
    import com.huaweicloud.sdk.core.auth.BasicCredentials;
    import com.huaweicloud.sdk.core.exception.ConnectionException;
    import com.huaweicloud.sdk.core.exception.RequestTimeoutException;
    import com.huaweicloud.sdk.core.exception.ServiceResponseException;
    import com.huaweicloud.sdk.lts.v2.region.LtsRegion;
    import com.huaweicloud.sdk.lts.v2.*;
    import com.huaweicloud.sdk.lts.v2.model.*;
    
    import java.util.Map;
    import java.util.HashMap;
    
    public class ListLogsSolution {
    
        public static void main(String[] args) {
            // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
            // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
            String ak = System.getenv("CLOUD_SDK_AK");
            String sk = System.getenv("CLOUD_SDK_SK");
            String projectId = "{project_id}";
    
            ICredential auth = new BasicCredentials()
                    .withProjectId(projectId)
                    .withAk(ak)
                    .withSk(sk);
    
            LtsClient client = LtsClient.newBuilder()
                    .withCredential(auth)
                    .withRegion(LtsRegion.valueOf("<YOUR REGION>"))
                    .build();
            ListLogsRequest request = new ListLogsRequest();
            request.withLogGroupId("{log_group_id}");
            request.withLogStreamId("{log_stream_id}");
            QueryLtsLogParams body = new QueryLtsLogParams();
            Map<String, String> listbodyLabels = new HashMap<>();
            listbodyLabels.put("hostName", "ecs-kwxtest");
            body.withLimit(10);
            body.withKeywords("log");
            body.withIsCount(true);
            body.withLabels(listbodyLabels);
            body.withEndTime("1595659500000");
            body.withStartTime("1595659200000");
            request.withBody(body);
            try {
                ListLogsResponse response = client.listLogs(request);
                System.out.println(response.toString());
            } catch (ConnectionException e) {
                e.printStackTrace();
            } catch (RequestTimeoutException e) {
                e.printStackTrace();
            } catch (ServiceResponseException e) {
                e.printStackTrace();
                System.out.println(e.getHttpStatusCode());
                System.out.println(e.getRequestId());
                System.out.println(e.getErrorCode());
                System.out.println(e.getErrorMsg());
            }
        }
    }
    
  • 分页查询, 以包含“NO 5”的日志为起始点, 查询 “NO 6”、“NO 7”、“NO 8”

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    package com.huaweicloud.sdk.test;
    
    import com.huaweicloud.sdk.core.auth.ICredential;
    import com.huaweicloud.sdk.core.auth.BasicCredentials;
    import com.huaweicloud.sdk.core.exception.ConnectionException;
    import com.huaweicloud.sdk.core.exception.RequestTimeoutException;
    import com.huaweicloud.sdk.core.exception.ServiceResponseException;
    import com.huaweicloud.sdk.lts.v2.region.LtsRegion;
    import com.huaweicloud.sdk.lts.v2.*;
    import com.huaweicloud.sdk.lts.v2.model.*;
    
    import java.util.Map;
    import java.util.HashMap;
    
    public class ListLogsSolution {
    
        public static void main(String[] args) {
            // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
            // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
            String ak = System.getenv("CLOUD_SDK_AK");
            String sk = System.getenv("CLOUD_SDK_SK");
            String projectId = "{project_id}";
    
            ICredential auth = new BasicCredentials()
                    .withProjectId(projectId)
                    .withAk(ak)
                    .withSk(sk);
    
            LtsClient client = LtsClient.newBuilder()
                    .withCredential(auth)
                    .withRegion(LtsRegion.valueOf("<YOUR REGION>"))
                    .build();
            ListLogsRequest request = new ListLogsRequest();
            request.withLogGroupId("{log_group_id}");
            request.withLogStreamId("{log_stream_id}");
            QueryLtsLogParams body = new QueryLtsLogParams();
            Map<String, String> listbodyLabels = new HashMap<>();
            listbodyLabels.put("hostName", "ecs-kwxtest");
            body.withLimit(3);
            body.withSearchType(QueryLtsLogParams.SearchTypeEnum.fromValue("forwards"));
            body.withIsDesc(false);
            body.withLineNum("1595659490239433658");
            body.withKeywords("log");
            body.withIsCount(true);
            body.withLabels(listbodyLabels);
            body.withEndTime("1595659500000");
            body.withStartTime("1595659200000");
            request.withBody(body);
            try {
                ListLogsResponse response = client.listLogs(request);
                System.out.println(response.toString());
            } catch (ConnectionException e) {
                e.printStackTrace();
            } catch (RequestTimeoutException e) {
                e.printStackTrace();
            } catch (ServiceResponseException e) {
                e.printStackTrace();
                System.out.println(e.getHttpStatusCode());
                System.out.println(e.getRequestId());
                System.out.println(e.getErrorCode());
                System.out.println(e.getErrorMsg());
            }
        }
    }
    
  • 分页查询, 以包含“NO 5”的日志为起始点, 查询“NO 8”、“NO 7”、“NO 6”

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    package com.huaweicloud.sdk.test;
    
    import com.huaweicloud.sdk.core.auth.ICredential;
    import com.huaweicloud.sdk.core.auth.BasicCredentials;
    import com.huaweicloud.sdk.core.exception.ConnectionException;
    import com.huaweicloud.sdk.core.exception.RequestTimeoutException;
    import com.huaweicloud.sdk.core.exception.ServiceResponseException;
    import com.huaweicloud.sdk.lts.v2.region.LtsRegion;
    import com.huaweicloud.sdk.lts.v2.*;
    import com.huaweicloud.sdk.lts.v2.model.*;
    
    import java.util.Map;
    import java.util.HashMap;
    
    public class ListLogsSolution {
    
        public static void main(String[] args) {
            // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
            // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
            String ak = System.getenv("CLOUD_SDK_AK");
            String sk = System.getenv("CLOUD_SDK_SK");
            String projectId = "{project_id}";
    
            ICredential auth = new BasicCredentials()
                    .withProjectId(projectId)
                    .withAk(ak)
                    .withSk(sk);
    
            LtsClient client = LtsClient.newBuilder()
                    .withCredential(auth)
                    .withRegion(LtsRegion.valueOf("<YOUR REGION>"))
                    .build();
            ListLogsRequest request = new ListLogsRequest();
            request.withLogGroupId("{log_group_id}");
            request.withLogStreamId("{log_stream_id}");
            QueryLtsLogParams body = new QueryLtsLogParams();
            Map<String, String> listbodyLabels = new HashMap<>();
            listbodyLabels.put("hostName", "ecs-kwxtest");
            body.withLimit(3);
            body.withSearchType(QueryLtsLogParams.SearchTypeEnum.fromValue("backwards"));
            body.withIsDesc(true);
            body.withLineNum("1595659490239433658");
            body.withKeywords("log");
            body.withIsCount(true);
            body.withLabels(listbodyLabels);
            body.withEndTime("1595659500000");
            body.withStartTime("1595659200000");
            request.withBody(body);
            try {
                ListLogsResponse response = client.listLogs(request);
                System.out.println(response.toString());
            } catch (ConnectionException e) {
                e.printStackTrace();
            } catch (RequestTimeoutException e) {
                e.printStackTrace();
            } catch (ServiceResponseException e) {
                e.printStackTrace();
                System.out.println(e.getHttpStatusCode());
                System.out.println(e.getRequestId());
                System.out.println(e.getErrorCode());
                System.out.println(e.getErrorMsg());
            }
        }
    }
    
  • 分页查询, 以包含“NO 5”的日志为起始点,查询“NO 2”、“NO 3”、“NO 4”

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    package com.huaweicloud.sdk.test;
    
    import com.huaweicloud.sdk.core.auth.ICredential;
    import com.huaweicloud.sdk.core.auth.BasicCredentials;
    import com.huaweicloud.sdk.core.exception.ConnectionException;
    import com.huaweicloud.sdk.core.exception.RequestTimeoutException;
    import com.huaweicloud.sdk.core.exception.ServiceResponseException;
    import com.huaweicloud.sdk.lts.v2.region.LtsRegion;
    import com.huaweicloud.sdk.lts.v2.*;
    import com.huaweicloud.sdk.lts.v2.model.*;
    
    import java.util.Map;
    import java.util.HashMap;
    
    public class ListLogsSolution {
    
        public static void main(String[] args) {
            // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
            // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
            String ak = System.getenv("CLOUD_SDK_AK");
            String sk = System.getenv("CLOUD_SDK_SK");
            String projectId = "{project_id}";
    
            ICredential auth = new BasicCredentials()
                    .withProjectId(projectId)
                    .withAk(ak)
                    .withSk(sk);
    
            LtsClient client = LtsClient.newBuilder()
                    .withCredential(auth)
                    .withRegion(LtsRegion.valueOf("<YOUR REGION>"))
                    .build();
            ListLogsRequest request = new ListLogsRequest();
            request.withLogGroupId("{log_group_id}");
            request.withLogStreamId("{log_stream_id}");
            QueryLtsLogParams body = new QueryLtsLogParams();
            Map<String, String> listbodyLabels = new HashMap<>();
            listbodyLabels.put("hostName", "ecs-kwxtest");
            body.withLimit(3);
            body.withSearchType(QueryLtsLogParams.SearchTypeEnum.fromValue("backwards"));
            body.withIsDesc(false);
            body.withLineNum("1595659490239433658");
            body.withKeywords("log");
            body.withIsCount(true);
            body.withLabels(listbodyLabels);
            body.withEndTime("1595659500000");
            body.withStartTime("1595659200000");
            request.withBody(body);
            try {
                ListLogsResponse response = client.listLogs(request);
                System.out.println(response.toString());
            } catch (ConnectionException e) {
                e.printStackTrace();
            } catch (RequestTimeoutException e) {
                e.printStackTrace();
            } catch (ServiceResponseException e) {
                e.printStackTrace();
                System.out.println(e.getHttpStatusCode());
                System.out.println(e.getRequestId());
                System.out.println(e.getErrorCode());
                System.out.println(e.getErrorMsg());
            }
        }
    }
    
  • 分页查询, 以包含“NO 5”的日志为起始点, 查询 “NO 4”、“NO 3”、“NO 2”

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    package com.huaweicloud.sdk.test;
    
    import com.huaweicloud.sdk.core.auth.ICredential;
    import com.huaweicloud.sdk.core.auth.BasicCredentials;
    import com.huaweicloud.sdk.core.exception.ConnectionException;
    import com.huaweicloud.sdk.core.exception.RequestTimeoutException;
    import com.huaweicloud.sdk.core.exception.ServiceResponseException;
    import com.huaweicloud.sdk.lts.v2.region.LtsRegion;
    import com.huaweicloud.sdk.lts.v2.*;
    import com.huaweicloud.sdk.lts.v2.model.*;
    
    import java.util.Map;
    import java.util.HashMap;
    
    public class ListLogsSolution {
    
        public static void main(String[] args) {
            // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
            // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
            String ak = System.getenv("CLOUD_SDK_AK");
            String sk = System.getenv("CLOUD_SDK_SK");
            String projectId = "{project_id}";
    
            ICredential auth = new BasicCredentials()
                    .withProjectId(projectId)
                    .withAk(ak)
                    .withSk(sk);
    
            LtsClient client = LtsClient.newBuilder()
                    .withCredential(auth)
                    .withRegion(LtsRegion.valueOf("<YOUR REGION>"))
                    .build();
            ListLogsRequest request = new ListLogsRequest();
            request.withLogGroupId("{log_group_id}");
            request.withLogStreamId("{log_stream_id}");
            QueryLtsLogParams body = new QueryLtsLogParams();
            Map<String, String> listbodyLabels = new HashMap<>();
            listbodyLabels.put("hostName", "ecs-kwxtest");
            body.withLimit(3);
            body.withSearchType(QueryLtsLogParams.SearchTypeEnum.fromValue("forwards"));
            body.withIsDesc(true);
            body.withLineNum("1595659490239433658");
            body.withKeywords("log");
            body.withIsCount(true);
            body.withLabels(listbodyLabels);
            body.withEndTime("1595659500000");
            body.withStartTime("1595659200000");
            request.withBody(body);
            try {
                ListLogsResponse response = client.listLogs(request);
                System.out.println(response.toString());
            } catch (ConnectionException e) {
                e.printStackTrace();
            } catch (RequestTimeoutException e) {
                e.printStackTrace();
            } catch (ServiceResponseException e) {
                e.printStackTrace();
                System.out.println(e.getHttpStatusCode());
                System.out.println(e.getRequestId());
                System.out.println(e.getErrorCode());
                System.out.println(e.getErrorMsg());
            }
        }
    }
    
  • 分析语句查询示例。

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    package com.huaweicloud.sdk.test;
    
    import com.huaweicloud.sdk.core.auth.ICredential;
    import com.huaweicloud.sdk.core.auth.BasicCredentials;
    import com.huaweicloud.sdk.core.exception.ConnectionException;
    import com.huaweicloud.sdk.core.exception.RequestTimeoutException;
    import com.huaweicloud.sdk.core.exception.ServiceResponseException;
    import com.huaweicloud.sdk.lts.v2.region.LtsRegion;
    import com.huaweicloud.sdk.lts.v2.*;
    import com.huaweicloud.sdk.lts.v2.model.*;
    
    
    public class ListLogsSolution {
    
        public static void main(String[] args) {
            // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
            // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
            String ak = System.getenv("CLOUD_SDK_AK");
            String sk = System.getenv("CLOUD_SDK_SK");
            String projectId = "{project_id}";
    
            ICredential auth = new BasicCredentials()
                    .withProjectId(projectId)
                    .withAk(ak)
                    .withSk(sk);
    
            LtsClient client = LtsClient.newBuilder()
                    .withCredential(auth)
                    .withRegion(LtsRegion.valueOf("<YOUR REGION>"))
                    .build();
            ListLogsRequest request = new ListLogsRequest();
            request.withLogGroupId("{log_group_id}");
            request.withLogStreamId("{log_stream_id}");
            QueryLtsLogParams body = new QueryLtsLogParams();
            body.withIsAnalysisQuery(true);
            body.withQuery("* | select field1,field2 from log");
            body.withEndTime("1722327932801");
            body.withStartTime("1722324332801");
            request.withBody(body);
            try {
                ListLogsResponse response = client.listLogs(request);
                System.out.println(response.toString());
            } catch (ConnectionException e) {
                e.printStackTrace();
            } catch (RequestTimeoutException e) {
                e.printStackTrace();
            } catch (ServiceResponseException e) {
                e.printStackTrace();
                System.out.println(e.getHttpStatusCode());
                System.out.println(e.getRequestId());
                System.out.println(e.getErrorCode());
                System.out.println(e.getErrorMsg());
            }
        }
    }
    
  • 首次查询日志

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    # coding: utf-8
    
    import os
    from huaweicloudsdkcore.auth.credentials import BasicCredentials
    from huaweicloudsdklts.v2.region.lts_region import LtsRegion
    from huaweicloudsdkcore.exceptions import exceptions
    from huaweicloudsdklts.v2 import *
    
    if __name__ == "__main__":
        # The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
        # In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
        ak = os.environ["CLOUD_SDK_AK"]
        sk = os.environ["CLOUD_SDK_SK"]
        projectId = "{project_id}"
    
        credentials = BasicCredentials(ak, sk, projectId)
    
        client = LtsClient.new_builder() \
            .with_credentials(credentials) \
            .with_region(LtsRegion.value_of("<YOUR REGION>")) \
            .build()
    
        try:
            request = ListLogsRequest()
            request.log_group_id = "{log_group_id}"
            request.log_stream_id = "{log_stream_id}"
            listLabelsbody = {
                "hostName": "ecs-kwxtest"
            }
            request.body = QueryLtsLogParams(
                limit=10,
                keywords="log",
                is_count=True,
                labels=listLabelsbody,
                end_time="1595659500000",
                start_time="1595659200000"
            )
            response = client.list_logs(request)
            print(response)
        except exceptions.ClientRequestException as e:
            print(e.status_code)
            print(e.request_id)
            print(e.error_code)
            print(e.error_msg)
    
  • 分页查询, 以包含“NO 5”的日志为起始点, 查询 “NO 6”、“NO 7”、“NO 8”

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    # coding: utf-8
    
    import os
    from huaweicloudsdkcore.auth.credentials import BasicCredentials
    from huaweicloudsdklts.v2.region.lts_region import LtsRegion
    from huaweicloudsdkcore.exceptions import exceptions
    from huaweicloudsdklts.v2 import *
    
    if __name__ == "__main__":
        # The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
        # In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
        ak = os.environ["CLOUD_SDK_AK"]
        sk = os.environ["CLOUD_SDK_SK"]
        projectId = "{project_id}"
    
        credentials = BasicCredentials(ak, sk, projectId)
    
        client = LtsClient.new_builder() \
            .with_credentials(credentials) \
            .with_region(LtsRegion.value_of("<YOUR REGION>")) \
            .build()
    
        try:
            request = ListLogsRequest()
            request.log_group_id = "{log_group_id}"
            request.log_stream_id = "{log_stream_id}"
            listLabelsbody = {
                "hostName": "ecs-kwxtest"
            }
            request.body = QueryLtsLogParams(
                limit=3,
                search_type="forwards",
                is_desc=False,
                line_num="1595659490239433658",
                keywords="log",
                is_count=True,
                labels=listLabelsbody,
                end_time="1595659500000",
                start_time="1595659200000"
            )
            response = client.list_logs(request)
            print(response)
        except exceptions.ClientRequestException as e:
            print(e.status_code)
            print(e.request_id)
            print(e.error_code)
            print(e.error_msg)
    
  • 分页查询, 以包含“NO 5”的日志为起始点, 查询“NO 8”、“NO 7”、“NO 6”

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    # coding: utf-8
    
    import os
    from huaweicloudsdkcore.auth.credentials import BasicCredentials
    from huaweicloudsdklts.v2.region.lts_region import LtsRegion
    from huaweicloudsdkcore.exceptions import exceptions
    from huaweicloudsdklts.v2 import *
    
    if __name__ == "__main__":
        # The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
        # In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
        ak = os.environ["CLOUD_SDK_AK"]
        sk = os.environ["CLOUD_SDK_SK"]
        projectId = "{project_id}"
    
        credentials = BasicCredentials(ak, sk, projectId)
    
        client = LtsClient.new_builder() \
            .with_credentials(credentials) \
            .with_region(LtsRegion.value_of("<YOUR REGION>")) \
            .build()
    
        try:
            request = ListLogsRequest()
            request.log_group_id = "{log_group_id}"
            request.log_stream_id = "{log_stream_id}"
            listLabelsbody = {
                "hostName": "ecs-kwxtest"
            }
            request.body = QueryLtsLogParams(
                limit=3,
                search_type="backwards",
                is_desc=True,
                line_num="1595659490239433658",
                keywords="log",
                is_count=True,
                labels=listLabelsbody,
                end_time="1595659500000",
                start_time="1595659200000"
            )
            response = client.list_logs(request)
            print(response)
        except exceptions.ClientRequestException as e:
            print(e.status_code)
            print(e.request_id)
            print(e.error_code)
            print(e.error_msg)
    
  • 分页查询, 以包含“NO 5”的日志为起始点,查询“NO 2”、“NO 3”、“NO 4”

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    # coding: utf-8
    
    import os
    from huaweicloudsdkcore.auth.credentials import BasicCredentials
    from huaweicloudsdklts.v2.region.lts_region import LtsRegion
    from huaweicloudsdkcore.exceptions import exceptions
    from huaweicloudsdklts.v2 import *
    
    if __name__ == "__main__":
        # The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
        # In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
        ak = os.environ["CLOUD_SDK_AK"]
        sk = os.environ["CLOUD_SDK_SK"]
        projectId = "{project_id}"
    
        credentials = BasicCredentials(ak, sk, projectId)
    
        client = LtsClient.new_builder() \
            .with_credentials(credentials) \
            .with_region(LtsRegion.value_of("<YOUR REGION>")) \
            .build()
    
        try:
            request = ListLogsRequest()
            request.log_group_id = "{log_group_id}"
            request.log_stream_id = "{log_stream_id}"
            listLabelsbody = {
                "hostName": "ecs-kwxtest"
            }
            request.body = QueryLtsLogParams(
                limit=3,
                search_type="backwards",
                is_desc=False,
                line_num="1595659490239433658",
                keywords="log",
                is_count=True,
                labels=listLabelsbody,
                end_time="1595659500000",
                start_time="1595659200000"
            )
            response = client.list_logs(request)
            print(response)
        except exceptions.ClientRequestException as e:
            print(e.status_code)
            print(e.request_id)
            print(e.error_code)
            print(e.error_msg)
    
  • 分页查询, 以包含“NO 5”的日志为起始点, 查询 “NO 4”、“NO 3”、“NO 2”

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    # coding: utf-8
    
    import os
    from huaweicloudsdkcore.auth.credentials import BasicCredentials
    from huaweicloudsdklts.v2.region.lts_region import LtsRegion
    from huaweicloudsdkcore.exceptions import exceptions
    from huaweicloudsdklts.v2 import *
    
    if __name__ == "__main__":
        # The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
        # In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
        ak = os.environ["CLOUD_SDK_AK"]
        sk = os.environ["CLOUD_SDK_SK"]
        projectId = "{project_id}"
    
        credentials = BasicCredentials(ak, sk, projectId)
    
        client = LtsClient.new_builder() \
            .with_credentials(credentials) \
            .with_region(LtsRegion.value_of("<YOUR REGION>")) \
            .build()
    
        try:
            request = ListLogsRequest()
            request.log_group_id = "{log_group_id}"
            request.log_stream_id = "{log_stream_id}"
            listLabelsbody = {
                "hostName": "ecs-kwxtest"
            }
            request.body = QueryLtsLogParams(
                limit=3,
                search_type="forwards",
                is_desc=True,
                line_num="1595659490239433658",
                keywords="log",
                is_count=True,
                labels=listLabelsbody,
                end_time="1595659500000",
                start_time="1595659200000"
            )
            response = client.list_logs(request)
            print(response)
        except exceptions.ClientRequestException as e:
            print(e.status_code)
            print(e.request_id)
            print(e.error_code)
            print(e.error_msg)
    
  • 分析语句查询示例。

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    # coding: utf-8
    
    import os
    from huaweicloudsdkcore.auth.credentials import BasicCredentials
    from huaweicloudsdklts.v2.region.lts_region import LtsRegion
    from huaweicloudsdkcore.exceptions import exceptions
    from huaweicloudsdklts.v2 import *
    
    if __name__ == "__main__":
        # The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
        # In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
        ak = os.environ["CLOUD_SDK_AK"]
        sk = os.environ["CLOUD_SDK_SK"]
        projectId = "{project_id}"
    
        credentials = BasicCredentials(ak, sk, projectId)
    
        client = LtsClient.new_builder() \
            .with_credentials(credentials) \
            .with_region(LtsRegion.value_of("<YOUR REGION>")) \
            .build()
    
        try:
            request = ListLogsRequest()
            request.log_group_id = "{log_group_id}"
            request.log_stream_id = "{log_stream_id}"
            request.body = QueryLtsLogParams(
                is_analysis_query=True,
                query="* | select field1,field2 from log",
                end_time="1722327932801",
                start_time="1722324332801"
            )
            response = client.list_logs(request)
            print(response)
        except exceptions.ClientRequestException as e:
            print(e.status_code)
            print(e.request_id)
            print(e.error_code)
            print(e.error_msg)
    
  • 首次查询日志

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    package main
    
    import (
    	"fmt"
    	"github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic"
        lts "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/lts/v2"
    	"github.com/huaweicloud/huaweicloud-sdk-go-v3/services/lts/v2/model"
        region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/lts/v2/region"
    )
    
    func main() {
        // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
        // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
        ak := os.Getenv("CLOUD_SDK_AK")
        sk := os.Getenv("CLOUD_SDK_SK")
        projectId := "{project_id}"
    
        auth := basic.NewCredentialsBuilder().
            WithAk(ak).
            WithSk(sk).
            WithProjectId(projectId).
            Build()
    
        client := lts.NewLtsClient(
            lts.LtsClientBuilder().
                WithRegion(region.ValueOf("<YOUR REGION>")).
                WithCredential(auth).
                Build())
    
        request := &model.ListLogsRequest{}
    	request.LogGroupId = "{log_group_id}"
    	request.LogStreamId = "{log_stream_id}"
    	var listLabelsbody = map[string]string{
            "hostName": "ecs-kwxtest",
        }
    	limitQueryLtsLogParams:= int32(10)
    	keywordsQueryLtsLogParams:= "log"
    	isCountQueryLtsLogParams:= true
    	request.Body = &model.QueryLtsLogParams{
    		Limit: &limitQueryLtsLogParams,
    		Keywords: &keywordsQueryLtsLogParams,
    		IsCount: &isCountQueryLtsLogParams,
    		Labels: listLabelsbody,
    		EndTime: "1595659500000",
    		StartTime: "1595659200000",
    	}
    	response, err := client.ListLogs(request)
    	if err == nil {
            fmt.Printf("%+v\n", response)
        } else {
            fmt.Println(err)
        }
    }
    
  • 分页查询, 以包含“NO 5”的日志为起始点, 查询 “NO 6”、“NO 7”、“NO 8”

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    package main
    
    import (
    	"fmt"
    	"github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic"
        lts "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/lts/v2"
    	"github.com/huaweicloud/huaweicloud-sdk-go-v3/services/lts/v2/model"
        region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/lts/v2/region"
    )
    
    func main() {
        // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
        // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
        ak := os.Getenv("CLOUD_SDK_AK")
        sk := os.Getenv("CLOUD_SDK_SK")
        projectId := "{project_id}"
    
        auth := basic.NewCredentialsBuilder().
            WithAk(ak).
            WithSk(sk).
            WithProjectId(projectId).
            Build()
    
        client := lts.NewLtsClient(
            lts.LtsClientBuilder().
                WithRegion(region.ValueOf("<YOUR REGION>")).
                WithCredential(auth).
                Build())
    
        request := &model.ListLogsRequest{}
    	request.LogGroupId = "{log_group_id}"
    	request.LogStreamId = "{log_stream_id}"
    	var listLabelsbody = map[string]string{
            "hostName": "ecs-kwxtest",
        }
    	limitQueryLtsLogParams:= int32(3)
    	searchTypeQueryLtsLogParams:= model.GetQueryLtsLogParamsSearchTypeEnum().FORWARDS
    	isDescQueryLtsLogParams:= false
    	lineNumQueryLtsLogParams:= "1595659490239433658"
    	keywordsQueryLtsLogParams:= "log"
    	isCountQueryLtsLogParams:= true
    	request.Body = &model.QueryLtsLogParams{
    		Limit: &limitQueryLtsLogParams,
    		SearchType: &searchTypeQueryLtsLogParams,
    		IsDesc: &isDescQueryLtsLogParams,
    		LineNum: &lineNumQueryLtsLogParams,
    		Keywords: &keywordsQueryLtsLogParams,
    		IsCount: &isCountQueryLtsLogParams,
    		Labels: listLabelsbody,
    		EndTime: "1595659500000",
    		StartTime: "1595659200000",
    	}
    	response, err := client.ListLogs(request)
    	if err == nil {
            fmt.Printf("%+v\n", response)
        } else {
            fmt.Println(err)
        }
    }
    
  • 分页查询, 以包含“NO 5”的日志为起始点, 查询“NO 8”、“NO 7”、“NO 6”

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    package main
    
    import (
    	"fmt"
    	"github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic"
        lts "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/lts/v2"
    	"github.com/huaweicloud/huaweicloud-sdk-go-v3/services/lts/v2/model"
        region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/lts/v2/region"
    )
    
    func main() {
        // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
        // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
        ak := os.Getenv("CLOUD_SDK_AK")
        sk := os.Getenv("CLOUD_SDK_SK")
        projectId := "{project_id}"
    
        auth := basic.NewCredentialsBuilder().
            WithAk(ak).
            WithSk(sk).
            WithProjectId(projectId).
            Build()
    
        client := lts.NewLtsClient(
            lts.LtsClientBuilder().
                WithRegion(region.ValueOf("<YOUR REGION>")).
                WithCredential(auth).
                Build())
    
        request := &model.ListLogsRequest{}
    	request.LogGroupId = "{log_group_id}"
    	request.LogStreamId = "{log_stream_id}"
    	var listLabelsbody = map[string]string{
            "hostName": "ecs-kwxtest",
        }
    	limitQueryLtsLogParams:= int32(3)
    	searchTypeQueryLtsLogParams:= model.GetQueryLtsLogParamsSearchTypeEnum().BACKWARDS
    	isDescQueryLtsLogParams:= true
    	lineNumQueryLtsLogParams:= "1595659490239433658"
    	keywordsQueryLtsLogParams:= "log"
    	isCountQueryLtsLogParams:= true
    	request.Body = &model.QueryLtsLogParams{
    		Limit: &limitQueryLtsLogParams,
    		SearchType: &searchTypeQueryLtsLogParams,
    		IsDesc: &isDescQueryLtsLogParams,
    		LineNum: &lineNumQueryLtsLogParams,
    		Keywords: &keywordsQueryLtsLogParams,
    		IsCount: &isCountQueryLtsLogParams,
    		Labels: listLabelsbody,
    		EndTime: "1595659500000",
    		StartTime: "1595659200000",
    	}
    	response, err := client.ListLogs(request)
    	if err == nil {
            fmt.Printf("%+v\n", response)
        } else {
            fmt.Println(err)
        }
    }
    
  • 分页查询, 以包含“NO 5”的日志为起始点,查询“NO 2”、“NO 3”、“NO 4”

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    package main
    
    import (
    	"fmt"
    	"github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic"
        lts "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/lts/v2"
    	"github.com/huaweicloud/huaweicloud-sdk-go-v3/services/lts/v2/model"
        region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/lts/v2/region"
    )
    
    func main() {
        // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
        // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
        ak := os.Getenv("CLOUD_SDK_AK")
        sk := os.Getenv("CLOUD_SDK_SK")
        projectId := "{project_id}"
    
        auth := basic.NewCredentialsBuilder().
            WithAk(ak).
            WithSk(sk).
            WithProjectId(projectId).
            Build()
    
        client := lts.NewLtsClient(
            lts.LtsClientBuilder().
                WithRegion(region.ValueOf("<YOUR REGION>")).
                WithCredential(auth).
                Build())
    
        request := &model.ListLogsRequest{}
    	request.LogGroupId = "{log_group_id}"
    	request.LogStreamId = "{log_stream_id}"
    	var listLabelsbody = map[string]string{
            "hostName": "ecs-kwxtest",
        }
    	limitQueryLtsLogParams:= int32(3)
    	searchTypeQueryLtsLogParams:= model.GetQueryLtsLogParamsSearchTypeEnum().BACKWARDS
    	isDescQueryLtsLogParams:= false
    	lineNumQueryLtsLogParams:= "1595659490239433658"
    	keywordsQueryLtsLogParams:= "log"
    	isCountQueryLtsLogParams:= true
    	request.Body = &model.QueryLtsLogParams{
    		Limit: &limitQueryLtsLogParams,
    		SearchType: &searchTypeQueryLtsLogParams,
    		IsDesc: &isDescQueryLtsLogParams,
    		LineNum: &lineNumQueryLtsLogParams,
    		Keywords: &keywordsQueryLtsLogParams,
    		IsCount: &isCountQueryLtsLogParams,
    		Labels: listLabelsbody,
    		EndTime: "1595659500000",
    		StartTime: "1595659200000",
    	}
    	response, err := client.ListLogs(request)
    	if err == nil {
            fmt.Printf("%+v\n", response)
        } else {
            fmt.Println(err)
        }
    }
    
  • 分页查询, 以包含“NO 5”的日志为起始点, 查询 “NO 4”、“NO 3”、“NO 2”

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    package main
    
    import (
    	"fmt"
    	"github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic"
        lts "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/lts/v2"
    	"github.com/huaweicloud/huaweicloud-sdk-go-v3/services/lts/v2/model"
        region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/lts/v2/region"
    )
    
    func main() {
        // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
        // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
        ak := os.Getenv("CLOUD_SDK_AK")
        sk := os.Getenv("CLOUD_SDK_SK")
        projectId := "{project_id}"
    
        auth := basic.NewCredentialsBuilder().
            WithAk(ak).
            WithSk(sk).
            WithProjectId(projectId).
            Build()
    
        client := lts.NewLtsClient(
            lts.LtsClientBuilder().
                WithRegion(region.ValueOf("<YOUR REGION>")).
                WithCredential(auth).
                Build())
    
        request := &model.ListLogsRequest{}
    	request.LogGroupId = "{log_group_id}"
    	request.LogStreamId = "{log_stream_id}"
    	var listLabelsbody = map[string]string{
            "hostName": "ecs-kwxtest",
        }
    	limitQueryLtsLogParams:= int32(3)
    	searchTypeQueryLtsLogParams:= model.GetQueryLtsLogParamsSearchTypeEnum().FORWARDS
    	isDescQueryLtsLogParams:= true
    	lineNumQueryLtsLogParams:= "1595659490239433658"
    	keywordsQueryLtsLogParams:= "log"
    	isCountQueryLtsLogParams:= true
    	request.Body = &model.QueryLtsLogParams{
    		Limit: &limitQueryLtsLogParams,
    		SearchType: &searchTypeQueryLtsLogParams,
    		IsDesc: &isDescQueryLtsLogParams,
    		LineNum: &lineNumQueryLtsLogParams,
    		Keywords: &keywordsQueryLtsLogParams,
    		IsCount: &isCountQueryLtsLogParams,
    		Labels: listLabelsbody,
    		EndTime: "1595659500000",
    		StartTime: "1595659200000",
    	}
    	response, err := client.ListLogs(request)
    	if err == nil {
            fmt.Printf("%+v\n", response)
        } else {
            fmt.Println(err)
        }
    }
    
  • 分析语句查询示例。

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    package main
    
    import (
    	"fmt"
    	"github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic"
        lts "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/lts/v2"
    	"github.com/huaweicloud/huaweicloud-sdk-go-v3/services/lts/v2/model"
        region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/lts/v2/region"
    )
    
    func main() {
        // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
        // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
        ak := os.Getenv("CLOUD_SDK_AK")
        sk := os.Getenv("CLOUD_SDK_SK")
        projectId := "{project_id}"
    
        auth := basic.NewCredentialsBuilder().
            WithAk(ak).
            WithSk(sk).
            WithProjectId(projectId).
            Build()
    
        client := lts.NewLtsClient(
            lts.LtsClientBuilder().
                WithRegion(region.ValueOf("<YOUR REGION>")).
                WithCredential(auth).
                Build())
    
        request := &model.ListLogsRequest{}
    	request.LogGroupId = "{log_group_id}"
    	request.LogStreamId = "{log_stream_id}"
    	isAnalysisQueryQueryLtsLogParams:= true
    	queryQueryLtsLogParams:= "* | select field1,field2 from log"
    	request.Body = &model.QueryLtsLogParams{
    		IsAnalysisQuery: &isAnalysisQueryQueryLtsLogParams,
    		Query: &queryQueryLtsLogParams,
    		EndTime: "1722327932801",
    		StartTime: "1722324332801",
    	}
    	response, err := client.ListLogs(request)
    	if err == nil {
            fmt.Printf("%+v\n", response)
        } else {
            fmt.Println(err)
        }
    }
    

更多编程语言的SDK代码示例,请参见API Explorer的代码示例页签,可生成自动对应的SDK代码示例。

状态码

状态码

描述

200

请求响应成功。

400

BadRequest。非法请求或查询语句错误。 建议根据error_msg直接修改该请求,不要重试该请求。

401

AuthFailed。鉴权失败, 请确认token后再次请求 。

403

Forbidden。请求被拒绝访问。返回该状态码,表明请求能够到达服务端,且服务端能够理解用户请求,但是拒绝做更多的事情,因为该请求被设置为拒绝访问,建议直接修改该请求,不要重试该请求。

500

InternalServerError。

表明服务端能被请求访问到,但是服务内部出错。

错误码

请参见错误码