すべてのプロダクト
Search
ドキュメントセンター

Function Compute:ログ管理

最終更新日:Aug 08, 2024

このトピックでは、Goランタイム環境でログを表示する方法について説明します。

ログの表示

ログを表示するには、context.GetLogger() メソッド、ログライブラリまたはfmtライブラリのメソッド、またはログライブラリの標準出力 (stdout) または標準エラーメッセージ (stderr) にログを書き込むために使用されるメソッドを使用できます。

context.GetLogger() メソッドを使用してログを表示

この方法を使用してログを表示する場合、表示されるログには、ログレベル、リクエストID、時刻、ファイル名、行番号などの情報が含まれます。 次のサンプルコードに例を示します。

package main

import (
    "context"

    "github.com/aliyun/fc-runtime-go-sdk/fc"
    "github.com/aliyun/fc-runtime-go-sdk/fccontext"
)

func HandleRequest(ctx context.Context) (string, error) {
    fctx, _ := fccontext.FromContext(ctx)

    fctx.GetLogger().Debug("this is Debug log")
    fctx.GetLogger().Debugf("Hi, %s\n", "this is Debugf log")

    fctx.GetLogger().Info("this is Info log")
    fctx.GetLogger().Infof("Hi, %s\n", "this is Infof log")

    fctx.GetLogger().Warn("this is Warn log")
    fctx.GetLogger().Warnf("Hi, %s\n", "this is Warnf log")

    fctx.GetLogger().Error("this is Error log")
    fctx.GetLogger().Errorf("Hi, %s\n", "this is Errorf log")

    return "Hello world", nil
}

func main() {
    fc.Start(HandleRequest)
}

次のログが表示されます。

FC Invoke Start RequestId: 1e9a87a5-fe0f-4904-a6f4-1d2728514129
2023-09-06T04:28:41.79Z d32c01bc-4397-4f52-a9ca-e374c28f96c1 [DEBUG] main.go:16: this is Debug log
2023-09-06T04:28:41.79Z d32c01bc-4397-4f52-a9ca-e374c28f96c1 [DEBUG] main.go:17: Hi, this is Debugf log
2023-09-06T04:28:41.79Z d32c01bc-4397-4f52-a9ca-e374c28f96c1 [INFO] main.go:19: this is Info log
2023-09-06T04:28:41.79Z d32c01bc-4397-4f52-a9ca-e374c28f96c1 [INFO] main.go:20: Hi, this is Infof log
2023-09-06T04:28:41.79Z d32c01bc-4397-4f52-a9ca-e374c28f96c1 [WARN] main.go:22: this is Warn log
2023-09-06T04:28:41.79Z d32c01bc-4397-4f52-a9ca-e374c28f96c1 [WARN] main.go:23: Hi, this is Warnf log
2023-09-06T04:28:41.791Z d32c01bc-4397-4f52-a9ca-e374c28f96c1 [ERROR] main.go:25: this is Error log
2023-09-06T04:28:41.791Z d32c01bc-4397-4f52-a9ca-e374c28f96c1 [ERROR] main.go:26: Hi, this is Errorf log
FC Invoke End RequestId: 1e9a87a5-fe0f-4904-a6f4-1d2728514129

ログライブラリのメソッドを使用してログを表示

この方法で表示されるログには、日付と時刻の情報が含まれます。 次のサンプルコードに例を示します。

package main

import (
    "log"

    "github.com/aliyun/fc-runtime-go-sdk/fc"
)

func HandleRequest() (string, error) {
    log.Println("hello world")
    return "hello world", nil
}

func main() {
    fc.Start(HandleRequest)
}

次のログが表示されます。

FC Invoke Start RequestId: a15f8f85-9ed3-47c9-a61c-75678db61831
2022/02/17 04:29:02.228870 hello world
FC Invoke End RequestId: a15f8f85-9ed3-47c9-a61c-75678db61831

実行の概要

Goランタイム環境には、各関数呼び出しの開始行と終了行、および実行サマリが記録されます。 次の表に、実行サマリのパラメーターを示します。

パラメーター

説明

要求 ID

呼び出し要求の一意のID。

コードチェック値

関数の呼び出しに使用されるコードパッケージの検証コード。

関数の実行時間

関数ハンドラーが実際に実行するのにかかる時間。

関数課金時間

関数の呼び出しに対して課金される時間。

関数メモリ

関数に割り当てられたメモリ。

実際の使用メモリ

関数によって実際に使用されるメモリの最大量。