Todos os produtos
Search
Central de documentação

Function Compute:Gerenciamento de logs

Última atualização: Jun 29, 2026

O runtime Go no Function Compute oferece suporte a vários métodos de log, cada um com uma saída composta por campos diferentes. Escolha o método mais adequado às suas necessidades ao depurar invocações de função.

Escolha um método de log

Método

Saída inclui

Mais indicado para

context.GetLogger()

Nível de log, ID da solicitação, carimbo de data/hora, nome do arquivo e número da linha

Depuração em produção: correlacionar logs a uma invocação específica

Biblioteca log (padrão)

Carimbo de data/hora

Logs de uso geral

Biblioteca fmt / stdout / stderr

Apenas mensagem bruta

Saída simples ou formatação personalizada de logs

Escreva logs com context.GetLogger()

Esse método adiciona nível de log, ID da solicitação, carimbo de data/hora, arquivo de source e número da linha a cada registro, tornando-o a opção mais eficaz para rastrear problemas entre invocações.

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)
}

Cada linha de log segue o formato <timestamp> <requestId> [<LEVEL>] <file>:<line>: <message>. O runtime delimita cada invocação com as linhas FC Invoke Start e FC Invoke End:

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

Escreva logs com a biblioteca log

A biblioteca padrão log do Go insere um carimbo de data/hora no início de cada linha.

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)
}

Saída:

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

Resumo da execução

Ao final de cada invocação, o runtime Go anexa um resumo da execução. Esse resumo contém os seguintes campos:

  • Request ID: ID exclusivo da solicitação de invocação.

  • Code Check Value: código de verificação do pacote de código usado na invocação.

  • Function Execution Time: tempo real que o handler da função levou para executar.

  • Function Billing Time: duração considerada para calcular o faturamento da invocação.

  • Function Memory: memória alocada para a função.

  • Actual Used Memory: pico de memória consumido durante a invocação.