2012-07-06 17 views
5

Tworzę prostą wtyczkę grails, która będzie działać jako centralna konfiguracja rejestrowania różnych firm przez nasze firmy. Ogólną ideą jest to, że po prostu dodajesz wtyczkę do projektu, a ona wstrzykuje różnych aplikantów do głównego rejestratora. Testuję to najpierw z aplikatorem Graylog2 (który działa, jeśli po prostu skonfiguruję go w Config.groovy). Jest to kod próbowałem (w init() z BootStrap.groovy [który zostanie wykonany na starcie]:Wstrzykiwanie aplikatora Log4J do aplikacji Grails

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) 

appender jest prawidłowo instancja i dołączone do rejestratora korzeni, tutaj jest wyjście z .. rL.getAllAppenders() ToList() każdy {print it.toString()}:

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

Więc pomimo appender dodaje do rejestratora korzeniowego i komunikaty o błędach poziomu są zapisywane w dzienniku (i wyświetlane domyślnemu Loggerowi konsoli), po prostu nie odpala wiadomości do Graylog2 (sprawdziłem używając Wireshark, aby to zweryfikować). ks dobrze, jeśli właśnie ustawiam wartości w Config.groovy innego projektu; ale oczywiście to pokonuje cel tej wtyczki.

+0

Mam ten sam problem, ale w Config.groovy, możesz pokazać mi, jak to działa? Z góry dzięki – gurbieta

Odpowiedz

1

Musisz zadzwonić pod numer activateOptions() na swoim appenderze, zanim dodasz go do głównego programu rejestrującego. Grails robi to za ciebie, kiedy konfigurujesz aplikację dostarczającą w Config.groovy i właśnie dlatego zadziałała.

+0

Ty, miły panie, jesteś bohaterem. – Noxville

Powiązane problemy