2009-02-05 13 views
6

Jaki jest najlepszy sposób użycia zewnętrznego pliku log4j.properties w Grails? Chciałbym użyć tradycyjnego formatu log4j.properties zamiast konfiguracji log4j.groovy.Używanie zewnętrznego pliku log4j.properties z Grailsem

Jestem także ciekawy, czy zewnętrzna konfiguracja będzie ładnie odtwarzać z plikiem log4j.properties utworzonym przez grails war i umieszczonym w pliku wojny. Jeśli usunę konfigurację log4j z Config.groovy, to log4j.properties nadal będzie umieszczane w pliku wojny?

+0

I powrócił ten dziś i znalazłem [ten wpis na blogu] (http://techbeats.deluan.com/how-to-use-an-external-log4jproperties-in-you-0), który oferuje sposób na wykonanie tego przy użyciu komponentu bean Log4jConfigurer Spring. Jeśli będę miał okazję wypróbować to, mogę opublikować odpowiedź. –

Odpowiedz

3

Zapoznaj się z Log4J Plugin który stanowi:.

„Niektóre starej szkoły programiści Java są bardziej komfortowe z log4j.xml mimo że plik konfiguracyjny jest znacznie większy Wtyczka ta zapewnia sposób wyłączyć domyślną Log4j DSL i zezwól na użycie log4j.xml w oryginalnym formularzu lub w stylu Groovy MarkupBuilder. "

Nie użyłem go samodzielnie, więc nie mogę mówić o jego użyteczności w kontekście WOJNY .. Po prostu nakręć aplikację i spróbuj ją wypróbować. Powinien znajdować się w folderze WEB-INF gdzieś oczywistym. Jeśli to nie zadziała, prawdopodobnie może ci pomóc Mingfai na grails user list.

+0

+1 Jest to rozsądne rozwiązanie, ale nie będzie działać dla mnie, ponieważ używam Grails 1.0.3 (wtyczka działa tylko dla wersji 1.1). Pomocna odpowiedź. Dzięki. –

4

Jeśli używasz serii 1.0.x:

  • skopiowania War.groovy od $ GRAILS_HOME/skryptów do swojej $ APP/scripts
  • Wykomentuj linie 145 i 154 kopiowanego War.groovy
  • umieść swoje log4j.properties w $ APP/grails-app/conf
  • uruchom wojnę $ grails, a ona poprosi cię o wybranie skryptu War uruchomić, a następnie wybierz swój lokalny (zwykle # 1).
0

Przynajmniej w serii 1.0.x (niezaznaczone w 1.1) zapomnij o pomocy Grails i polegaj bezpośrednio na Spring. Wystarczy użyć parametru log4jConfigLocation w pliku web.xml. Więcej informacji here

6

w Grails 1 i 2, jest logging DSL który jest skonfigurowany i używane w out-of-the-box webapp, więc będziemy chcieli, aby usunąć kod log4j = { ... } od grails-app/conf/Config.groovy

Jeśli chcesz użyć zewnętrznego pliku konfiguracyjnego do rejestrowania jak w typowej aplikacji WWW Java, a następnie zaktualizuj plik grails-app/conf/spring/resources.groovy za pomocą następującego pliku.

beans = { 
    log4jConfigurer(org.springframework.beans.factory.config.MethodInvokingFactoryBean) { 
     targetClass = "org.springframework.util.Log4jConfigurer" 
     targetMethod = "initLogging" 
     arguments = ["classpath:log4j.properties"] 
    } 
} 

Należy pamiętać, że nazwa pakietu wykorzystywane w konfiguracji appender Log4j prawdopodobnie nie będzie, czego się spodziewać, ponieważ będzie to miało Grails specyficzny prefiks dodawany na nią ...

WARN grails.app.controllers.org.example.BookController - This is a warn log message from BookController 
ERROR grails.app.controllers.org.example.BookController - This is an error log message from BookController 
Powiązane problemy