在Jruby中重定向STDERR

迈尔斯·罗伯茨

我正在尝试将STDERR重定向到作为守护程序运行的jruby程序的文件。之前我在MRI中都做到了这一点,但似乎在jruby中缺少一些困惑。

log = File.new('/home/my_user/test_log.log', "w")
$stderr.reopen log
$stderr.puts "writing to log!"

require 'some_broken_thing'

MRI(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时,已损坏的require的错误输出未在控制台中显示,这很好,但是从不显示在文件中,效果不是很好。

迈尔斯·罗伯茨

忘了把它关掉。正如inger所指出的,此问题已在http://github.com/jruby/jruby/issues/1082中修复

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在C中重定向stderr

来自分类Dev

在Google Colab中重定向或查看stderr

来自分类Dev

如何重定向busybox中的stderr?

来自分类Dev

将eval的STDERR重定向到perl中的/ dev / null

来自分类Dev

bash中的错误重定向后如何获取stderr

来自分类Dev

stderr重定向在csh中不起作用

来自分类Dev

将stdout重定向到tcsh中的stderr

来自分类Dev

子外壳中的stderr重定向更改了tput的输出

来自分类Dev

将stdout和/或stderr重定向到变量中的路径

来自分类Dev

在 OPEN pipe 命令中重定向 STDERR。Perl Linux

来自分类Dev

在脚本中重定向 stderr 并添加前缀

来自分类Dev

重定向STDERR未关闭

来自分类Dev

重定向命令后重定向stdout和stderr

来自分类Dev

重定向命令后重定向stdout和stderr

来自分类Dev

nc的STDOUT和STDERR重定向

来自分类Dev

使用变量的Stdout和Stderr重定向

来自分类Dev

动态更改STDOUT和STDERR重定向

来自分类Dev

从已经运行的脚本重定向stderr

来自分类Dev

stdin,stderr,重定向和日志

来自分类Dev

重定向特定行的stdout和stderr

来自分类Dev

nc的STDOUT和STDERR重定向

来自分类Dev

永久将stderr重定向到stdout

来自分类Dev

输出错误重定向(关于stderr)

来自分类Dev

如何将stderr和stdout重定向到不同的文件并在终端中显示?

来自分类Dev

在bash中的命令之间使用&符时,重定向stdout和stderr

来自分类Dev

在bash中重定向stdout和stderr的正确方法是什么?

来自分类Dev

您可以使用tcsh作为外壳重定向GDB中的stderr吗?

来自分类Dev

如何将stderr重定向到cron作业中的文件

来自分类Dev

通过LSF批处理作业中的grep -v重定向stderr