logologo
Começar
Manual
Desenvolvimento
Plugins
API
Início
English
简体中文
日本語
한국어
Español
Português
Deutsch
Français
Русский
Começar
Manual
Desenvolvimento
Plugins
API
Início
logologo
Visão geral do RunJS
Importando módulos
Renderização no contêiner

Variáveis globais

window
document
navigator

ctx

ctx.blockModel
ctx.collection
ctx.collectionField
ctx.dataSource
ctx.dataSourceManager
ctx.element
ctx.exit()
ctx.exitAll()
ctx.filterManager
ctx.form
ctx.getModel()
ctx.getValue()
ctx.getVar()
ctx.i18n
ctx.importAsync()
ctx.initResource()
ctx.libs
ctx.location
ctx.logger
ctx.makeResource()
ctx.message
ctx.modal
ctx.model
ctx.notification
ctx.off()
ctx.on()
ctx.openView()
ctx.render()
ctx.request()
ctx.requireAsync()
ctx.resource
ctx.route
ctx.router
ctx.setValue()
ctx.sql
ctx.t()
ctx.view
Previous Pagectx.location
Next Pagectx.makeResource()
Aviso de tradução por IA

Este documento foi traduzido por IA. Para informações precisas, consulte a versão em inglês.

#ctx.logger

Encapsulamento de logs baseado no pino, fornecendo logs JSON estruturados de alto desempenho. Recomenda-se o uso de ctx.logger em vez de console para facilitar a coleta e análise de logs.

#Cenários de uso

O ctx.logger pode ser usado em todos os cenários de RunJS para depuração, rastreamento de erros, análise de desempenho, etc.

#Definição de tipo

logger: pino.Logger;

ctx.logger é uma instância de engine.logger.child({ module: 'flow-engine' }), ou seja, um logger filho do pino com um contexto de module.

#Níveis de log

O pino suporta os seguintes níveis (do mais alto para o mais baixo):

NívelMétodoDescrição
fatalctx.logger.fatal()Erro fatal, geralmente leva ao encerramento do processo
errorctx.logger.error()Erro, indica que uma requisição ou operação falhou
warnctx.logger.warn()Aviso, indica riscos potenciais ou situações anômalas
infoctx.logger.info()Informações gerais de tempo de execução
debugctx.logger.debug()Informações de depuração, usadas durante o desenvolvimento
tracectx.logger.trace()Rastreamento detalhado, usado para diagnósticos profundos

#Escrita recomendada

Recomenda-se o formato level(msg, meta): a mensagem primeiro, seguida por um objeto de metadados opcional.

ctx.logger.info('Carregamento do bloco concluído');
ctx.logger.info('Operação bem-sucedida', { recordId: 456 });
ctx.logger.warn('Aviso de desempenho', { duration: 5000 });
ctx.logger.error('Falha na operação', { userId: 123, action: 'create' });
ctx.logger.error('Falha na requisição', { err });

O pino também suporta level(meta, msg) (objeto primeiro) ou level({ msg, ...meta }) (objeto único), que podem ser usados conforme a necessidade.

#Exemplos

#Uso básico

ctx.logger.info('Carregamento do bloco concluído');
ctx.logger.warn('Falha na requisição, usando cache', { err });
ctx.logger.debug('Salvando...', { recordId: ctx.record?.id });

#Usando child() para criar um logger filho

// Cria um logger filho com contexto para a lógica atual
const log = ctx.logger.child({ scope: 'myBlock' });
log.info('Executando passo 1');
log.debug('Executando passo 2', { step: 2 });

#Relação com o console

Recomenda-se usar o ctx.logger diretamente para obter logs JSON estruturados. Se você estiver acostumado a usar o console, as correspondências são: console.log → ctx.logger.info, console.error → ctx.logger.error, console.warn → ctx.logger.warn.

#Formato de log

O pino gera JSON estruturado, onde cada entrada de log contém:

  • level: Nível do log (numérico)
  • time: Timestamp (milissegundos)
  • msg: Mensagem de log
  • module: Fixo como flow-engine
  • Outros campos personalizados (passados via objetos)

#Observações

  • Os logs são JSON estruturados, facilitando a coleta, pesquisa e análise.
  • Loggers filhos criados via child() também seguem a recomendação de escrita level(msg, meta).
  • Alguns ambientes de execução (como fluxos de trabalho) podem usar métodos de saída de log diferentes.

#Relacionado

  • pino — Biblioteca de log subjacente