Warbler config.java_classes и log4j.properties

Я упаковываю приложение rails с помощью warbler и хочу вести журнал для конкретного приложения. Я добавил jar log4j и commons-loggin в каталог WEB-INF/lib и хочу добавить log4j.properties в каталог WEB-INF/classes. Проблема в том, что я также хочу вести журнал для конкретной среды, поэтому моя постановка/производство используют другие свойства (например, INFO вместо DEBUG), чем мой devel. Я не могу просто сделать:

config.java_classes = FileList["lib/log4j-#{RAILS_ENV}.properties"]

потому что Tomcat, похоже, ищет конкретный файл log4j.properties. Есть ли способ заставить warbler переименовать этот файл просто в log4j.properties? Или есть лучший механизм для ведения журнала для конкретного приложения и среды?


person brad    schedule 17.12.2009    source источник


Ответы (2)


И для окончательного ответа. RAILS_ENV, похоже, не работает в варблере, но просмотрев документы в конфигурации warble есть атрибут webxml, который содержит rails.env, изменяющий мой код для извлечения файла, например:

config.java_classes = FileList["lib/properties/log4j.properties.#{config.webxml.rails.env}"]

Работал как шарм!

person brad    schedule 17.12.2009
comment
Рад, что вы смогли найти ответ для себя! Получаете ли вы больше баллов за ответы на свои вопросы? - person Nick Sieger; 27.01.2010

Думаю, мне следует просто прочитать дальше в самом файле трели. Вы можете настроить карты путей для java_classes. Вот что я использовал:

config.java_classes = FileList["lib/properties/log4j.properties.#{RAILS_ENV}"]
config.pathmaps.java_classes << "%n"

Единственная проблема, которую я обнаружил, заключается в том, что на самом деле это больше не помещает log4j.properties в каталог WEB-INF/classes. Теперь он помещает его в корень. Кажется странным, что в документах конкретно сказано:

Одна или несколько карт путей, определяющих, как классы Java должны быть скопированы в WEB-INF/классы.

Я бы не подумал, что мне придется добавлять этот путь WEB-INF/classes вручную, но я это сделал. Итак, наконец, это сработало:

config.java_classes = FileList["lib/properties/log4j.properties.#{RAILS_ENV}"]
config.pathmaps.java_classes << "WEB-INF/classes/%n"

используя файлы log4j.properties.#{RAILS_ENV} в каталоге lib/properties

person brad    schedule 17.12.2009
comment
сотрите это. Похоже, что Warbler неправильно получает rails_env, я использую warbler (0.9.14). В моей шапке развертывания я правильно установил rails_env, не уверен, что здесь происходит, но он всегда получает log4j.properties.development - person brad; 17.12.2009