Skip to content

Logger

O AdonisJs vem com um logger completo construído em cima do winston, usando níveis de registro RFC5424.

O Logger vem com os seguintes drivers:

  1. Console (console)
  2. Arquivo (file)

Você é livre para adicionar seus próprios drivers construídos em cima do winston transports.

Configuração

A configuração do Logger é salva dentro do arquivo config/app.js sob o objeto logger:

js
// .config/app.js

logger: {
  transport: 'console',
  console: {
    driver: 'console'
  },
  file: {
    driver: 'file',
    filename: 'adonis.log'
  }
}

O driver file salva seu arquivo de log dentro do diretório raiz do aplicativo tmp.

NOTA

Você pode definir um caminho absoluto filename para um local de arquivo de log diferente, se desejar.

Exemplo básico

Vamos começar com um exemplo básico de dados de log dentro do seu aplicativo:

js
const Logger = use('Logger')

Logger.info('request url is %s', request.url())

Logger.info('request details %j', {
  url: request.url(),
  user: auth.user.username()
})

DICA

Todos os métodos de log suportam a sintaxe sprintf.

O logger usa níveis de log RFC5424, expondo métodos simples para cada nível:

NívelMétodoUso
0emergLogger.emerg(msg, ...data)
1alertLogger.alert(msg, ...data)
2critLogger.crit(msg, ...data)
3errorLogger.error(msg, ...data)
4warningLogger.warning(msg, ...data)
5noticeLogger.notice(msg, ...data)
6infoLogger.info(msg, ...data)
7debugLogger.debug(msg, ...data)

Trocando transportes

Você pode trocar transportes rapidamente usando o método transport:

js
Logger
  .transport('file')
  .info('request url is %s', request.url())

Nível de registro

O Logger tem um nível de registro de configuração padrão que pode ser atualizado em tempo de execução.

Quaisquer mensagens acima do nível de registro definido não são registradas. Por exemplo:

js
const Logger = use('Logger')
Logger.level = 'info'

// not logged
Logger.debug('Some debugging info')

Logger.level = 'debug'

// now logged
Logger.debug('Some debugging info')

Essa abordagem pode facilitar a desativação de mensagens de depuração quando seu servidor estiver sob alta carga.