2014-04-25 1 views
0

두 개의 다른 장소에서 단일 이벤트를 어떻게 기록 할 수 있습니까? STDOUT 및 다른 로그 파일을 말합니까?두 장소 동시 기록 - 레일

+0

이 유 – Dave

+0

을 Logger.INFO로하는 시도해 않았다

당신이 보석을 사용할 수 있습니다 @ : 그냥

class User < ActiveRecord::Base def my_logger @@my_logger ||= Logger.new("#{Rails.root}/log/my.log") end def before_save my_logger.info("Creating user with name #{self.name}") end end 

UPDATE 생성자에 파일 이름을 전달하고 일반 레일 로거와 같은 객체를 사용 데이브 나는 _logger = Logger.new ("# {Rails.root} /log/my.log")를 생성하고 있습니다. 그런 다음 로깅을 위해 _logger.info ("내 로그 메시지")를 사용하고 있습니다. 어쨌든 두 개의 다른 위치에 _logger를 만들 수 있습니까? 나는 두 개의 서로 다른 변수를 만들 수 있습니다. 둘 다 개별적으로 .info하지만 그게 나에게 좋은 방법 같지 않습니다. – shivam

+1

두 개의 다른 위치가 정확히 무엇입니까? – Dave

답변

1

모델 내부에서 Logger 객체를 직접 생성하십시오. multi logger

+0

이것은 정확하게 내가하는 일입니다. 그러나 당신이 볼 수 있듯이 "@@ my_logger || = Logger.new ("# {Rails.root} /log/my.log ")"에서 하나의 출력 파일 만 제공했습니다. 이 곳에서 나는 두 개의 다른 출력 파일을 추가 할 수 있었으면 좋겠다. 내가 수동으로 그렇게하고 싶었을지라도 보석을 주셔서 고맙습니다. – shivam

+0

다른 @@ my_logger 객체를 만들 수 없습니까? 왜 안되지? – Dave

+0

예, 할 수 있지만 문제는 로거를 함수에 전달하는 것입니다. 이 경우 나는 2 개의 로거 변수를 전달해야 할 것이다. 내 문제는 해결 될 것이지만 나는 그 좋은 수정을 생각하지 않는다. – shivam