2013-10-01 2 views
1

저는 ruofus-scheduler를 사용하여 어떤 작업을 수행하는 Heroku에서 작업자 dyno을 실행 중입니다.신뢰할 수있는 Heroku 콘솔 로깅

작업 중에 (단순한 put을 사용하여) 콘솔에 일부 메시지가 기록되지만 이러한 메시지는 Heroku 로그 및 Logentries와 같은 애드온으로 신뢰할 수 없게 전송됩니다.

dyno를 다시 시작하면 누락 된 모든 콘솔 메시지가 프로세스가 종료되기 전에 콘솔에 인쇄됩니다. 이 동작은 일부 버퍼링과 관련이 있습니까? 어떻게 이것을 피할 수 있습니까? 또는 스레드에서 작업을 생성하는 rufus-scheduler와 관련이 있습니까?

나는 Heroku 문서에서 Rack 기반 응용 프로그램에 대한 버퍼링을 방지하는 옵션에 대해 읽었지만 작업자 dynos에서는 그렇지 않습니다. 감사 스테판

답변

1

그냥 당신이 단순히 콘솔에 작성하는 추측

https://devcenter.heroku.com/articles/logging#writing-to-your-log를 참조하십시오. config.ru 또는 앱 헤드에서

$stdout.sync = true 
$stderr.sync = true # eventually 

을 추가하려고 시도 했습니까?

대신 전 세계적으로 true로 동기화를 설정하는, 당신은 또한 시도 할 수 및 로깅의 각 조각 후

puts "logging... hello world..." 
puts "oh and, this is what happened" 
$stdout.flush 

플러시를 수행하지만 지루한.

기록하지 않으면 질문에 설명하고 독자의 점술 능력에 포함되지 마십시오.

+1

감사합니다. 미안하지만 나는 내가 간단한 코드를 사용한다는 점을 잊어 버렸다. – stefankolb