2013-10-02 67 views
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時,控制檯不會顯示來自斷開的require的錯誤輸出,這很好,但它永遠不會出現在文件中,這並不好。

+0

剛剛發現後續這個作爲jruby錯誤https://github.com/jruby/jruby/issues/1082。感謝提高! – inger

回答