tencent cloud

$0 14-Day TrialExperience EdgeOne for acceleration and security protection!

Feedback

Serverless Cloud Function

Log Description

Last updated: 2024-12-02 18:12:22

Logging

You can use the following statements in the program to output the log:
fmt.Println
Or, use a method like fmt.Sprintf
For example, you can query the output in the function log by running the following code.
package main

import (
"context"
"fmt"
"github.com/tencentyun/scf-go-lib/cloudfunction"
)

type DefineEvent struct {
// test event define
Key1 string `json:"key1"`
Key2 string `json:"key2"`
}

func hello(ctx context.Context, event DefineEvent) (string, error) {
fmt.Println("key1:", event.Key1)
fmt.Println("key2:", event.Key2)
return fmt.Sprintf("Hello %s!", event.Key1), nil
}

func main() {
// Make the handler available for Remote Procedure Call by Cloud Function
cloudfunction.Start(hello)
}

Log Query

Currently, the function logs can be uploaded to Tencent Cloud SCF. You can complete the configuration as instructed in Log Delivery Configuration. You can search function execution logs on the log query page of the SCF or CLS console. For more information on how to query logs, see Log Search Guide.
Note:
Function logs uploaded to logset and log topic can be both queried with a function configured.

Custom Log Fields

Currently, the content output by simple log print statements in the function code will be recorded in the SCF_Message field when it is delivered to CLS. For descriptions of CLS fields, see Log Delivery Configuration.
Currently, SCF supports adding custom fields to logs that are uploaded to CLS. The custom fields allow you to output business fields and relevant data to logs, and track them using the log search feature of CLS.
Note:
If you need to query the key value of a custom field such as SCF_CustomKey: SCF, add a key-value index to the log topic for SCF log delivery as instructed in Configuring Indexes.
To avoid function log query failures caused by misuse of the index configuration, the default destination topic for SCF log delivery (prefixed with SCF_LogTopic_) does not support modifying the index configuration. You need to set the destination topic to custom delivery first and then update the log topic's index configuration.
After the index configuration is modified for a log topic, it will take effect only for newly written data.

Output

If a function outputs a single-line log in JSON, the log will be parsed and uploaded to CLS in the field:value format. Only the first layer will be parsed, and the remaining nested structure will be recorded as values.
Run the following codes and check results:
package main

import (
"context"
"fmt"
"github.com/tencentyun/scf-go-lib/cloudfunction"
)

type DefineEvent struct {
Key1 string `json:"key1"`
Key2 string `json:"key2"`
}

func hello(ctx context.Context, event DefineEvent) (string, error) {
m := map[string]string{"key1": "test value 1", "key2": "test value 2"}
data, _ := json.Marshal(m)
fmt.Println(string(data))
return fmt.Sprintf("hello world"), nil
}

func main() {
cloudfunction.Start(hello)
}
After using the above code to perform a test, you can run the following statement to search in Function Management > Log Query > Advanced Search:


Search for logs After the test is written to CLS, you can find the key1 field in the log query as shown below:



Catalog

Contact Us

Contact our sales team or business advisors to help your business.

Technical Support

Open a ticket if you're looking for further assistance. Our Ticket is 7x24 avaliable.

7x24 Phone Support
Hong Kong, China
+852 800 906 020 (Toll Free)
United States
+1 844 606 0804 (Toll Free)
United Kingdom
+44 808 196 4551 (Toll Free)
Canada
+1 888 605 7930 (Toll Free)
Australia
+61 1300 986 386 (Toll Free)
EdgeOne hotline
+852 300 80699
More local hotlines coming soon