MENU
      search

        search


        Article summary

        Overview

        You can look up Effective Log Search & Analytics logs by project.

        Request

        API URL

        POST
        https://elsa.apigw.ntruss.com/api/v1/logs/search
        HTTP

        Request header

        The request headers specified in common settings are required.
        Go to the creation guide of NAVER Cloud Platform authentication key and signature

        x-ncp-apigw-timestamp: {current timestamp}
        x-ncp-iam-access-key: {your iam access key}
        x-ncp-apigw-signature-v2: {generated signature}
        Plain text

        Request parameter

        Parameter nameRequirement statusTypeRestrictionsDescription
        projectKeyYesstring1-53Project key

        Example:
        “projectKey”:“Pbxxxxx_elsa-test”
        projectIdYesintProject ID

        Example:
        "projectId":8171
        fromYesintThe timestamp at which to start the search (UTC milliseconds).

        Example:
        "from":1381190400000
        toYesintThe timestamp at which to end the search (UTC milliseconds).

        Example:
        "to"1381190400000
        offsetNointoffset+limit<=10000Default value: 0
        You can specify an offset value at the beginning of the search results. 0 signifies the starting at the beginning of the first record.

        Example:
        "offset": 100
        limitNoint1 - 1000Default value: 10
        This is the number of logs to return upon request. Returns the number of logs as specified as the offset value.

        Example:
        "limit": 500
        sortsNoDefault value: [{"logTime":"DESC"}]
        You can specify the sorting method.
        This can only be applied when using the sorts feature. If the sorting field is a string field other than the specific fields (projectName, logTime, logLevel, host, projectVersion), ".raw" must be placed after the field.
        If you're not sure if the field that requires sorts needs ".raw" to be placed, then you can find out in the /api/v1/fields API.

        Example:
        “sorts”: [{"logType.raw":"DESC"}]
        “sorts”: [{"projectVersion":"ASC"},{"logType.raw":"DESC"}]
        queryNostringBool operators
        AND OR NOT + -
        Please refer to Query String Syntax / Lucene Query Syntax for more help.

        JSON special characters
        To search for the JSON special characters, such as the following, put \ before the characters.
        "
        \


        Example:
        Source: "query": "NOT logLevel:"FATAL" AND projectName:"elsa-test" AND (agent:"iPhone" OR agent:"iPod")"

        After applying the escape character: "query": "NOT logLevel:\"FATAL\" AND projectName:\"elsa-test\" AND (agent:\"iPhone\" OR agent:\"iPod\")"
        includeFieldsNo[string]This is the list of field names needed to look up logs.

        Example:
        “includeFields”: [“logSource”,” logType”,”body”]
        excludeFieldsNo[string]This is the list of field names that is not needed to look up logs.

        Example:
        “excludeFields”: [“DmpReport”,” logType”]

        Request body

        {
          "projectId": 8171,
          "projectKey": "Pbxxxxx_elsa-test",
          "from": 1381190400000,
          "to": 1381190400000,
          "offset": 0,
          "limit": 1000,
          "query": "NOT logLevel:\"FATAL\" AND projectName:\" elsa-test\" AND (agent:\"iPhone\" OR agent:\"iPod\")",
          "includeFields": [
            "logSource",
            "logType",
            "body"
          ],
          "sorts": [
            {
              "projectVersion": "ASC"
            },
            {
              "logType.raw": "DESC"
            }
          ]
        }
        JSON

        Request examples

        import hashlib
        import hmac
        import base64
        import time
        import requests
        
        def make_signature(access_key, secret_key, timestamp, url):
            timestamp = str(timestamp)
            secret_key = bytes(secret_key, 'UTF-8')
            method = "POST"
        
            message = method + " " + url + "\n" + timestamp + "\n" + access_key
            message = bytes(message, 'UTF-8')
            signingKey = base64.b64encode(hmac.new(secret_key, message, digestmod=hashlib.sha256).digest())
            return signingKey.decode('UTF-8')
        
        
        def log_search():
            baseurl = "https://elsa.apigw.ntruss.com" #{OpenAPI endpoint}
            url = "/api/v1/logs/search"
        
            access_key = "accessKey" #{Main / Sub Account Access Key}
            secret_key = "secretKey" #{Main / Sub Account Secret Key}
            timestamp = int(time.time() * 1000)
        
            signature = make_signature(access_key, secret_key, timestamp, url)
            url = baseurl + url
        
            payload = {
              "projectId": 8171,
              "projectKey": "Pbxxxxx_elsa-test",
              "from": 1381190400000,
              "to": 1381190400000,
              "offset": 0,
              "limit": 1000,
              "query": "NOT logLevel:\"FATAL\" AND projectName:\" elsa-test\" AND (agent:\"iPhone\" OR agent:\"iPod\")",
              "includeFields": ["logSource","logType","body"],
              "sorts":[{"projectVersion":"ASC"},{"logType.raw":"DESC"}]
            }
        
        
            headers = {
                "x-ncp-apigw-timestamp": str(timestamp),
                "x-ncp-iam-access-key": access_key,
                "x-ncp-apigw-signature-v2": str(signature)
            }
        
            response = requests.post(url=url,
                          json=payload,
                          verify=True,
                          headers=headers
                          )
        Python

        Response

        Response body

        {
          "data": {
            "total": 2,
            "logs": [
              {
                "sort": [
                  "9.9.9",
                  "elsa-log"
                ],
                "id": "27mt7eQqk9xILgiLdJcgxxxx",
                "existDmp": false,
                "source": {
                  "logType": "elsa-log",
                  "logSource": "json",
                  "body": "Hello, I am [ xxx ], Nice to meet you !"
                }
              },
              {
                "sort": [
                  "9.9.9",
                  "nelo2-log"
                ],
                "id": "55mt7eQqk9xILgiLdJcgxxxx",
                "existDmp": false,
                "source": {
                  "logType": " elsa-log ",
                  "logSource": "json",
                  "body": "Hello, I am [ xxx ], Nice to meet you !"
                }
              }
            ]
          },
          "status": 200
        }
        JSON

        Was this article helpful?

        Changing your password will log you out immediately. Use the new password to log back in.
        First name must have atleast 2 characters. Numbers and special characters are not allowed.
        Last name must have atleast 1 characters. Numbers and special characters are not allowed.
        Enter a valid email
        Enter a valid password
        Your profile has been successfully updated.