2013-10-02 3 views
1

Я пытаюсь перенаправить 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 не отображается в консоли, что хорошо, но в файле никогда не появляется, что не так хорошо.

+0

Просто нашел продолжение этого в качестве ошибки jruby https://github.com/jruby/jruby/issues/1082. Спасибо за повышение! – inger

ответ

Смежные вопросы