Я пытаюсь перенаправить STDERR в файл для программы jruby, которая работает как демон. Я делал это в МРТ раньше без каких-либо проблем, но, похоже, я пропустил часть куска головоломки в jruby.перенаправление STDERR в jruby
log = File.new('/home/my_user/test_log.log', "w")
$stderr.reopen log
$stderr.puts "writing to log!"
require 'some_broken_thing'
содержимое журнала в МРТ (2.0.0-p0):
/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!
содержимое журнала в JRuby (1.7.4):
writing to log!
Я просто пытаюсь обеспечить такие глупые вещи, как сломанные, требуют или неудовлетворительные зависимости, где-то регистрируются, а не пускаются в консоль. Не уверен, что я делаю неправильно. Когда я вызываю $ stderr.reopen, вывод ошибки из требования break не отображается в консоли, что хорошо, но в файле никогда не появляется, что не так хорошо.
Просто нашел продолжение этого в качестве ошибки jruby https://github.com/jruby/jruby/issues/1082. Спасибо за повышение! – inger