Docs Menu
Docs Home
/ /

로깅 구성

이 가이드 에서는 Mongoid 애플리케이션 에서 로깅을 구성하는 방법을 학습 수 있습니다. 로깅을 구성할 때 Mongoid는 Ruby 운전자 위에 모델 계층을 제공하고 운전자 데이터 작업을 MongoDB 에 할당합니다. 따라서 Mongoid를 사용하는 애플리케이션 의 로깅 출력 중 일부는 Mongoid 자체에서 발생하고 일부는 운전자 에서 발생합니다.

Mongoid 클라이언트 는 Ruby 운전자 클라이언트 인스턴스 이므로 Mongoid 클라이언트 의 로거는 Mongoid 로거가 아닌 Ruby 운전자 로거입니다. 다음 코드는 Mongoid 클라이언트 로거를 생성합니다.

Mongoid.client(:default).logger

애플리케이션 프레임워크 와 Mongoid 및 Ruby 운전자 구성하는 방법에 따라 동일한 로거 인스턴스 또는 다른 인스턴스를 사용할 수 있으며, 잠재적으로 구성이 다를 수 있습니다.

Ruby on Rails 애플리케이션 에서 사용되는 경우, Mongoid는 기본값 으로 Rails에서 로거와 로그 수준을 상속합니다. Mongoid는 드라이버의 로거를 동일한 로거 인스턴스 로 설정합니다.

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

로그 수준을 변경하려면 표준 Rails 구성 를 사용합니다. config/environments/production.rb와 같은 환경 구성 파일 중 하나에 다음 차단 배치합니다.

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

참고

log_level Mongoid 구성 옵션은 Mongoid가 Rails 애플리케이션 에서 작동할 때 사용되지 않는데, 이는 Mongoid가 Rails의 로그 수준을 상속하기 때문입니다.

Mongoid 또는 운전자 로거를 Rails 로거와 다르게 구성하려면 다음 코드에 표시된 대로 이니셜라이저를 사용하세요.

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

참고

Ruby 표준 라이브러리 Logger 에는 로거가 사용 중인 IO 객체 와 같은 로그 장치를 반환하는 조항이 없습니다.

예시 를 들어, Mongoid 또는 Ruby 운전자 표준 Rails 로거(Rails.logger)와 다른 수준으로 표준 Rails 로그 파일 (log/development.log)에 로그 하도록 하려면 파일 별도로 열고 결과 IO 를 전달해야 합니다. 객체 Logger 생성자에 추가합니다.

Mongoid는 자체 로거와 드라이버의 로거를 Rails 로거와 동일한 인스턴스 로 설정하기 때문에 인스턴스를 수정하면 모든 로거에 영향을 미칩니다. 예시 들어, 다음 코드는 세 로거 모두의 로그 수준을 변경합니다.

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

Ruby on Rails 애플리케이션 에 로드되지 않은 경우 Mongoid는 log_level 최상위 구성 옵션을 따릅니다.

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

로그 수준을 인라인으로 구성할 수도 있습니다.

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

기본값 로그 대상은 표준 오류입니다. 로그 대상을 변경하려면 다음 코드에 표시된 대로 새 로거 인스턴스 만듭니다.

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

Ruby 운전자 로그 수준 또는 대상을 변경하려면 애플리케이션 파일 에 다음 차단 추가합니다.

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

참고

Mongoid는 독립형 모드 에서 실행 때 드라이버의 로거를 변경하지 않습니다.

돌아가기

샤딩

이 페이지의 내용