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

  • 1881 Animation

    1881 Animati

    5 EKİM 2013
  • funbro1

    funbro1

    11 Aralık 2007
  • george sarintzotis

    george sarin

    2 Aralık 2007