Imprima e visualize logs em runtimes Node.js. Os logs impressos ajudam a localizar problemas rapidamente ou servem para obter informações sobre a execução da função, como o processo e a duração. Essa prática melhora a confiabilidade e a estabilidade do sistema.
Imprimir logs
O Simple Log Service armazena os logs que uma função imprime na saída padrão (stdout) no Logstore especificado. Use um dos métodos a seguir para imprimir logs no stdout. O código de exemplo abaixo ilustra essa prática:
ECMAScript modules
Este exemplo é compatível apenas com Node.js 18 ou superior.
O código de exemplo oferece suporte à implantação com um clique. Implante o código de exemplo no Function Compute com um único clique. nodejs-fc-log-es
export const handler = async (event, context) => {
process.stdout.write('hi,fc\n');
console.log('hello,world');
context.logger.info('hello,fc');
return "Hello World!";
};
CommonJS modules
'use strict';
exports.handler = (event, context, callback) => {
process.stdout.write('hi,fc\n');
console.log('hello,world');
context.logger.info('hello,fc');
callback(null, 'hello,world');
};
Use process.stdout.write to print logs
Ao utilizar este método, o conteúdo do log é impresso exatamente como foi gerado. Exemplo de log:
hi,fc
Use console.log to print logs
Com esta abordagem, cada entrada de log inclui informações como horário, ID da requisição e nível de log. Exemplo de log:
2024-03-04 07:01:16.927 1-65e571bc-158a59e8-b63f98cd471c [info] hello,world
Use context.logger to print logs
Se a concorrência de instâncias da função estiver configurada com um valor maior que 1, uma única instância processará múltiplas requisições simultaneamente. Nesse cenário, use context.logger para imprimir logs e distinguir os registros de cada requisição concorrente pelo ID da requisição. Exemplo de log:
2024-03-04 07:01:16.927 1-65e571bc-158a59e8-b63f98cd471c [[object Object]] hello,fc
Níveis de severidade de log personalizados
Os níveis de severidade de log personalizados têm suporte apenas nos runtimes Nodejs18 e Nodejs20.
Personalize os níveis de severidade de log por meio da variável de ambiente ALIYUN_FC_LOG_LEVEL. Os níveis personalizados, organizados da menor para a maior severidade, são: debug, info, warn e error.
Apenas logs com níveis de severidade iguais ou superiores ao definido em ALIYUN_FC_LOG_LEVEL serão impressos.
Por exemplo, ao configurar ALIYUN_FC_LOG_LEVEL=warn, somente logs com nível igual ou superior a warn aparecerão na saída. Por padrão, o nível dos logs gerados por console.log é info, inferior a warn. Consequentemente, logs de nível info não serão exibidos. Já os logs impressos via process.stdout.write() não sofrem influência dessa variável de ambiente.
Procedimento
Crie um diretório de código para testes, por exemplo,
mycode.-
Crie o arquivo de código
index.jsna pastacodee salve o seguinte código de exemplo emindex.js.'use strict'; exports.handler = (event, context, callback) => { process.stdout.write('stdout log\n'); console.log('console log'); context.logger.debug('context log info'); context.logger.info('context log info'); context.logger.warn('context log warn'); context.logger.error('context log error'); callback(null, 'hello,world'); } Faça login no console do Function Compute. Crie uma função selecionando Event Function. Escolha Node.js 18 ou Node.js 20 como runtime e defina Upload Folder como método de envio de código. Para mais detalhes, consulte Criar uma função acionada por evento.
Na página de detalhes da função, clique em Configurations. No painel de navegação à esquerda, clique em Environment Variables. Na seção Environment Variables, clique em Modifique.
Após clicar em Test Function, se você tiver configurado
ALIYUN_FC_LOG_LEVEL=warn, os seguintes logs serão impressos:
stdout log
2024-06-19 08:48:51.672 1--xxx-xxx-xxx [warn] context log warn
2024-06-19 08:48:51.672 1--xxx-xxx-xxx [error] context log error
Visualizar logs
Após a execução da função, visualize os logs na aba Logs. Para mais informações, consulte Visualizar logs de invocação.