SORU
20 HAZİRAN 2011, PAZARTESİ


Ne gibi stdout dosyasına ruby logger giriş çıkış alabilir miyim?

Bir tee işlevselliği logger gibi şeyler.

CEVAP
20 HAZİRAN 2011, PAZARTESİ


IO birden çok nesne yazacak o IO sözde bir sınıf yazabilirsiniz. Gibi bir şey

class MultiIO
  def initialize(*targets)
     @targets = targets
  end

  def write(*args)
    @targets.each {|t| t.write(*args)}
  end

  def close
    @targets.each(&:close)
  end
end

Sonra günlük dosyası olarak ayarlayın:

log_file = File.open("log/debug.log", "a")
Logger.new MultiIO.new(STDOUT, log_file)

Her zaman Logger STDOUT ve günlük dosyası yazmak. MultiIO nesne puts çağırır.

Düzenleme:Devam ettim ve arayüzü geri kalanı anladım. Bir günlük cihazı write close (puts) yanıtlaması gerekir. MultiIO gerçek IO nesnelere bu vekiller ve onlara yanıt verir sürece, bu çalışması gerekir.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Edgar flores

    Edgar flores

    7 HAZİRAN 2006
  • hytchme

    hytchme

    9 Mart 2014
  • Jon Reed

    Jon Reed

    14 AĞUSTOS 2006