小编ntt*_*tar的帖子

为什么记录器输出到STDOUT不会被重定向到文件?

此脚本命名为o.rb:

@logger = Logger.new(STDOUT)
@logger.info "start_time : #{start_time}"
Run Code Online (Sandbox Code Playgroud)

当我使用它时./o.rb,控制台上的输出是正确的.
但是,当我尝试时./o.rb > log.txt 2>&1,日志文件是空的!
为什么会这样?

使用简单puts函数时我遇到了同样的问题.


UPDATE

这将重现此问题:

require 'logger'

logger = Logger.new(STDOUT)

loop do
  logger.info "This is a test haha"
  sleep(1)
end
Run Code Online (Sandbox Code Playgroud)

当我使用./foo.rb它运行时,它正确写入控制台输出.

当我跑步时./foo.rb > log.txt,我一无所获.

此外,当我使用时./foo.rb | tee log.txt,没有任何内容写入控制台,日志文件为空.

log.txt文件已创建但仍为空.

我的Ruby版本是1.8.7.

ruby logging

6
推荐指数
1
解决办法
4721
查看次数

与红宝石规格混淆

spec/rspec和mspec之间的区别是什么?在ruby spec home中,它说我们应该使用mspec命令.

但其他一些人说它应该是'spec kind_of_spec.rb'.

有人说我们应该使用'rspec'.

这三个模块的区别是什么?

ruby specifications mspec-ruby

2
推荐指数
1
解决办法
2300
查看次数

标签 统计

ruby ×2

logging ×1

mspec-ruby ×1

specifications ×1