2013-04-10 1 views
0

Я хочу заполнить «dir» в accesslogvalve из значения из setenv.bat. Ex:Использование переменной среды для accesslogvalve dir

<Valve 
className="org.apache.catalina.valves.AccessLogValve" 
directory="${my.logs.dir}" 
prefix="access_log" 
fileDateFormat="yyyy-MM-dd.HH" 
suffix=".log" 
pattern="%t %H cookie:%{SESSIONID}c request:%{SESSIONID}r %m %U %s %q %r"/> 

Я уточнял "my.logs.dir" в setenv.bat

set my.logs.dir=C:\xyz\abc

Когда я начинаю котом, я вижу папку $ {my.logs.dir } под установкой tomcat. Проблема в том, что $ {my.logs.dir} не был заменен переменной env при запуске tomcat. Если я даю жестко закодированное значение, например dir="C:\xyz\abc", он отлично работает.

Может ли кто-нибудь помочь мне заменить $ {my.logs.dir} на значение из среды при запуске сервера?

Благодаря

ответ

0

Я не думаю, что переменные окружения доступны по умолчанию в файлах конфигурации Tomcat. Свойства системы, однако, есть. Поэтому, если вы добавите переменную как системное свойство вместо переменной окружения, она должна работать.

Если по какой-то причине абсолютно необходимо использовать переменные окружения, документация Tomcat имеет ссылку на замену собственности в это раздел о System Properties, который может быть установлен, чтобы настроить поведение Tomcat:

org.apache.tomcat .util.digester. PROPERTY_SOURCE

Установите это полное имя класса, реализующего org.apache.tomcat.util.IntrospectionUtils.PropertySource. Требуется иметь публичный конструктор без аргументов.

Используйте это, чтобы добавить источник собственности, который будет вызываться, когда параметры $ {parameter}, обозначенные как, находятся в файлах XML, которые анализирует Tomcat.

+0

Спасибо NilsH Я исследую параметр Propery_source. –

Смежные вопросы