1
STDERR을 데몬으로 실행되는 jruby 프로그램 용 파일로 리디렉션하려고합니다. 전에 MRI에서 아무런 문제없이이 작업을 수행했지만 jruby에서 퍼즐의 일부가 누락 된 것 같습니다. MRI (2.0.0-P0)에서jruby에서 STDERR을 리디렉션
log = File.new('/home/my_user/test_log.log', "w")
$stderr.reopen log
$stderr.puts "writing to log!"
require 'some_broken_thing'
로그 내용 : JRuby에서의
/path/to/ruby/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require': cannot load such file -- some_broken_thing (LoadError)
from /path/to/ruby/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require'
from test.rb:5:in `<main>'
writing to log!
로그 내용 (1.7.4) : 난 그냥 확인하기 위해 노력하고있어
writing to log!
깨진 요구 사항이나 충족되지 않은 종속성과 같은 어리석은 것들이 콘솔에 발사되는 대신 어딘가에 기록됩니다. 내가 뭘 잘못하고 있는지 모르겠다. $ stderr.reopen을 호출하면 깨진 요구 사항의 오류 출력이 콘솔에 표시되지 않지만 좋은 결과는 나타나지 않지만 결코 좋지 않습니다.
으로 수정되었습니다. jruby 버그 https://github.com/jruby/jruby/issues/1082로 후속 조치를 찾았습니다. 제기 해 주셔서 감사합니다. – inger