Join us Sept 17 at .local NYC! Use code WEB50 to save 50% on tickets. Learn more >
MongoDB Event
Menu Docs
Página inicial do Docs
/ / /
Mongoid
/

Configuração de registro

Neste guia, você pode aprender como configurar o registro em seu aplicação Mongoid. Ao configurar o registro, observe que o Mongoid fornece uma camada de modelo sobre o driver Ruby e o driver despacha operações de dados para o MongoDB. Portanto, parte da saída de registro em um aplicação que usa o Mongoid vem do próprio Mongoid e parte vem do driver.

O cliente Mongoid é uma instância do cliente do driver Ruby, portanto, o registrador de um cliente Mongoid é o registrador do driver Ruby, não o registrador do Mongoid. O seguinte código cria um registrador de cliente Mongoid:

Mongoid.client(:default).logger

Dependendo da estrutura do aplicação e de como você configura o Mongoid e o driver Ruby, eles podem usar a mesma instância do registrador ou instâncias diferentes, potencialmente com configurações diferentes.

Quando usado em um aplicação Ruby on Rails, o Mongoid, por padrão, herda o registrador e o nível de registro do Rails. O Mongoid define o registrador do driver para a mesma instância de registrador:

Rails.logger === Mongoid.logger
# => true
Mongoid.logger === Mongo::Logger.logger
# => true

Para alterar o nível de registro, use a configuração padrão do Rails. Coloque o seguinte bloco em um dos seus arquivos de configuração de ambiente, como config/environments/production.rb:

Rails.application.configure do
config.log_level = :debug
end

Observação

A opção de configuração log_level Mongoid não é usada quando o Mongoid opera em um aplicação Rails, porque o Mongoid herda o nível de registro do Rails.

Para configurar o Mongoid ou o registrador de driver de forma diferente do registrador do Rails, use um inicializador, conforme mostrado no código a seguir:

Rails.application.configure do
config.after_initialize do
# Change Mongoid log destination and level
Mongoid.logger = Logger.new(STDERR).tap do |logger|
logger.level = Logger::DEBUG
end
# Change driver log destination and level
Mongo::Logger.logger = Logger.new(STDERR).tap do |logger|
logger.level = Logger::DEBUG
end
end
end

Observação

Não há nenhuma cláusula na biblioteca padrão Ruby Logger para retornar o dispositivo de log, como o objeto IO , que um logger está usando.

Para fazer, por exemplo, o Mongoid ou o driver Ruby registrar no arquivo de log padrão do Rails (log/development.log) com um nível diferente do registrador do Rails padrão (Rails.logger), você deve abrir o arquivo separadamente e passar o IO resultante objeto para o construtor Logger .

Como o Mongoid define seu próprio registrador e o registrador do driver para a mesma instância que o registrador do Rails, modificar qualquer uma das instâncias afeta todos os registradores. Por exemplo, o código a seguir altera o nível de registro de todos os três registradores:

Mongoid::Logger.logger.level = Logger::DEBUG

Quando não é carregado em um aplicação Ruby on Rails, o Mongoid respeita a opção de configuração de nível superior log_level:

development:
clients:
default:
...
options:
log_level: :debug

Você também pode configurar o nível de registro in-line:

Mongoid.configure do |config|
config.log_level = :debug
end

O destino de registro padrão é de erro padrão. Para alterar o destino do registro, crie uma nova instância de registrador, conforme mostrado no código a seguir:

Mongoid.logger = Logger.new(STDERR).tap do |logger|
logger.level = Logger::DEBUG
end

Para alterar o nível de registo do driver Ruby ou destino, adicione o seguinte bloco ao seu arquivo de aplicação :

Mongo::Logger.logger = Logger.new(STDERR).tap do |logger|
logger.level = Logger::DEBUG
end

Observação

O Mongoid não altera o registrador do driver quando executado no modo autônomo .

Voltar

Fragmentação

Nesta página