簡體   English   中英

打印到沒有換行的日志文件 - Ruby on Rails

[英]Print to log file without newline - Ruby on Rails

我有一個記錄器可以打印到文件:

logger = Logger.new Rails.root.join 'log/my.log'

如何在不同的記錄器調用中在一行中打印多個點?

即,如果我這樣做

some_array.each do |el|
  logger.info '.'
  el.some_method
end

這些點將以不同的線條打印。

<<方法允許您在沒有任何格式化日志文件的情況下編寫消息。

例如:

require 'logger'

log = Logger.new "test.log"
log.info "Start"
5.times { log << "." }
log << "\n"
log.info "End"

生產:

I, [2014-03-10T15:11:04.320495 #3410]  INFO -- : Start
.....
I, [2014-03-10T15:11:42.157131 #3410]  INFO -- : End

不幸的是,這不會讓你寫入與之前調用log.info相同的行

你可以使用Logger#<<(msg)

轉儲給日志設備的消息沒有任何格式。 如果不存在日志設備,則返回nil。

some_array.each do |el|
  logger << '.'
  el.some_method
end

你仍然可以通過使用.info?來限制logger.level .info?

some_array.each do |el|
  logger << '.' if logger.info?
  el.some_method
end

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM