新手问题 ruby 脚本运行结束才可以看到 logger 日志内容

LinuxGit · 2014年09月28日 · 最后由 LinuxGit 回复于 2014年09月29日 · 2480 次阅读

用 ruby 写了一个脚本,用 logger 记录执行过程。 http://ruby-doc.org/stdlib-2.1.2/libdoc/logger/rdoc/Logger.html

file = File.open('logfile.log', File::WRONLY | File::APPEND | File::CREAT)
logger = Logger.new(file)

脚本里都是使用 logger.info('initialize') { "Initializing..." } 的格式记录信息。

但脚本执行过程中,tail -f logfile.log 一直没内容,等脚本执行结束,全记录在里面了,看了文档搜索没找到原因,求助,谢谢。

#2 楼 @zgm logger = Logger.new(STDOUT) 往终端标准输出打印可以立马显示出来,怎么立马往文件写呢? 😄

lz 请看 https://ruby-china.org/topics/1224#reply9@hooopo 回答

require 'logger'
file = File.open('logfile.log', File::WRONLY | File::APPEND | File::CREAT)
logger = Logger.new(file)
file.sync = true  # --> 注意这里

logger.info('aaa')
puts '开始sleep'
sleep 10
puts 'end sleep'
需要 登录 后方可回复, 如果你还没有账号请 注册新账号