O Function Compute coleta toda a saída gravada em stdout ou stderr no Logstore do Simple Log Service (SLS) especificado durante a criação do serviço. Este tópico explica como imprimir logs estruturados em uma função Java, ler o resumo de execução anexado pelo Function Compute a cada invocação e visualizar logs no console.
Impressão de logs
Você pode imprimir logs de uma função Java de duas formas:
|
Método |
Quando usar |
|
|
Use quando precisar correlacionar logs a uma invocação específica. Cada entrada de log inclui timestamp, request ID e nível de log, o que permite filtrar o Logstore para obter toda a saída de uma única chamada de função. |
|
Bibliotecas de log de terceiros (por exemplo, logback) |
Use quando sua aplicação já possuir uma configuração de log estabelecida. |
Recomendamos o uso do método context.getLogger . Os logs impressos por esse método contêm request IDs, facilitando a consulta de logs e a solução de erros.
Uso do context.getLogger
O exemplo a seguir grava uma entrada de log de nível INFO e retorna uma resposta:
package example;
import com.aliyun.fc.runtime.Context;
import com.aliyun.fc.runtime.StreamRequestHandler;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
public class HelloFC implements StreamRequestHandler {
@Override
public void handleRequest(InputStream inputStream, OutputStream outputStream, Context context) throws IOException {
context.getLogger().info("hello world");
outputStream.write(new String("hello world").getBytes());
}
}
A execução deste handler gera a seguinte saída no Logstore:
message:2017-07-05T05:13:35.920Z a72df088-f738-cee3-e0fe-323ad891**** [INFO] hello world
Cada entrada de log contém o horário, o request ID e o nível de log, seguidos pela mensagem.
Níveis de log
O context.getLogger oferece suporte a seis níveis de log. Escolha o nível adequado à intenção da mensagem:
|
Nível de log |
Método |
Uso padrão |
|
TRACE |
|
Detalhes refinados do caminho de execução; nível mais detalhado |
|
DEBUG |
|
Informações detalhadas para diagnosticar o comportamento do sistema |
|
INFO |
|
Mensagens de operação normal |
|
WARN |
|
Problemas potenciais que podem causar comportamento inesperado se não tratados |
|
ERROR |
|
Falhas que impedem a execução correta do código |
|
FATAL |
|
Erros críticos que interrompem a aplicação; nível menos detalhado |
Resumo de execução
Para cada invocação, o Function Compute registra as linhas de marcação FC Invoke Start e FC Invoke End e anexa um resumo de execução ao log. O resumo contém os seguintes campos:
|
Campo |
Descrição |
|
Request ID |
O request ID da invocação. |
|
Code Check Value |
O código de verificação do pacote de código da função usado nesta invocação. |
|
Function Execution Time |
O tempo real gasto pelo handler da função durante a execução. |
|
Function Billing Time |
O período cobrado pela execução. |
|
Function Memory |
A memória alocada para a função. |
|
Actual Used Memory |
O pico de memória consumido durante a invocação. |
Visualização de logs
Após a execução da função, visualize os logs na aba Logs da página de detalhes da função no console do Function Compute. Para instruções passo a passo, consulte Visualizar logs de invocação de função.