Использование внешнего файла log4j.properties с Grails - PullRequest
6 голосов
/ 06 февраля 2009

Как лучше всего использовать внешний файл log4j.properties в Grails? Я бы хотел использовать традиционный формат log4j.properties, а не конфигурацию в стиле log4j.groovy.

Мне также любопытно, будет ли внешняя конфигурация хорошо работать с файлом log4j.properties, который создан grails war и помещен в файл war. Если я удалю конфигурацию log4j из Config.groovy, будут ли свойства log4j.properties все еще помещаться в файл war?

Ответы [ 4 ]

6 голосов
/ 22 мая 2012

В Grails 1 и 2 есть DSL для ведения журнала , который настроен и используется в готовом веб-приложении, поэтому вам нужно удалить код log4j = { ... } из * 1004. *

Если вы хотите использовать внешний файл конфигурации для ведения журнала, как в типичном веб-приложении Java, обновите файл grails-app/conf/spring/resources.groovy, указав следующее.

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

Обратите внимание, что имя пакета, используемое в конфигурации приложения Log4j, вероятно, будет не таким, как вы ожидаете, поскольку к нему будет добавлен префикс, специфичный для Grails ...

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
4 голосов
/ 06 февраля 2009

Если вы используете серию 1.0.x:

  • скопируйте War.groovy из $ GRAILS_HOME / scripts в ваше $ APP / scripts
  • закомментируйте строки 145 и 154 скопированного War.groovy
  • поместите ваши log4j.properties в $ APP / grails-app / conf
  • запустите $ grails war, и вам будет предложено выбрать сценарий войны для запуска, а затем локальный (обычно # 1).
3 голосов
/ 06 февраля 2009

Проверьте плагин Log4J , который гласит:

"Некоторым разработчикам Java старой школы удобнее использовать log4j.xml, даже если файл конфигурации намного больше. Этот плагин позволяет отключить DSL Log4j по умолчанию и разрешить использование log4j.xml в исходном виде или в стиле Groovy MarkupBuilder. "

Я сам не использовал его, поэтому не могу говорить о его удобстве использования в контексте WAR. Просто создайте WAR-приложение и попробуйте его. Он должен находиться в папке WEB-INF где-то очевидной. Если это не сработает, Mingfai в списке пользователей grails , вероятно, может помочь вам.

0 голосов
/ 19 октября 2009

По крайней мере в серии 1.0.x (не проверено в 1.1) забудьте о поддержке Grails и положитесь непосредственно на Spring. Просто используйте параметр log4jConfigLocation в web.xml. Подробнее здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...