2012-07-06 7 views
5

Şirketlerimizin çeşitli projelerin günlüğe kaydedilmesi için merkezi yapılandırma görevi görecek basit bir derecelendirme eklentisi yapıyorum. Genel fikir, eklentiyi projenize eklemenizdir ve çeşitli ekleyicileri kök günlüğüne enjekte eder. İlk olarak bir Graylog2 ekleyicisi ile test ediyorum (eğer bunu Config.groovy'de yapılandırırsam çalışır). appender doğru kök günlükçüsüne örneği ve takılı Bir Gra3 uygulamasına bir Log4J ekleyicisini enjekte etme

def rL = Logger.rootLogger 
    def layout = new PatternLayout(conversionPattern: '%d{dd-MM-yyyy HH:mm:ss,SSS} %5p %c{1} - %m%n') 

    Appender appender = new org.graylog2.log.GelfAppender(
      name:"gelf", 
      graylogHost:"graylog2.ourcompany.com", 
      extractStacktrace: true, 
      addExtendedInformation: true, 
      facility: "gelf-java", 
      threshold: org.apache.log4j.Level.INFO, 
      additionalFields: "{'runtime': 'grails', 'environment': 'dev', 'transport': 'gelf-java'}", 
      layout: layout 
    ) 
    rL.addAppender(appender) 

, burada çıktısı şu şekildedir: Bu [başlangıçta işletilirse] BootStrap.groovy init denedim kodu (() 'dir .. rL.getAllAppenders() ToList() her {baskı it.toString()}: Appender kök günlükçüsüne eklendi ve rağmen

org.codeh[email protected]7a054197 
[email protected] 

Yani, Hata düzeyindeki iletileri günlüğüne yazılıyor (ve varsayılan Konsol Kayıt Cihazı'na gösterilir), sadece Graylog2 mesajlarını kapatmaz (bunu doğrulamak için Wireshark kullanarak kontrol ettim). ks, eğer değerleri başka bir projenin Config.groovy'sine koyduysam; ama açıkçası bu eklentinin amacını yener.

+0

Aynı sorun var ama Config.groovy'de, nasıl çalıştığını bana gösterir misiniz? Şimdiden teşekkürler – gurbieta

cevap

1

Kök kaydediciye eklemeden önce, ekleyicinize activateOptions() numaralı telefonu aramanız gerekir. Uygulamacıyı Config.groovy içinde yapılandırdığınızda, bu yüzden orada çalıştığı için Grails bunu sizin için yapar.

+0

Siz bayım, bir kahramansınız. – Noxville