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

  • Drakinen

    Drakinen

    1 EYLÜL 2008
  • Ty Moss

    Ty Moss

    20 Kasım 2007
  • warningthepeople

    warningthepe

    21 EYLÜL 2011