Как настроить мой log4j (используя Glassfish) для входа в каталог logs, а не в config? - PullRequest
9 голосов
/ 10 сентября 2009

В моем файле log4j.properties есть следующая строка:

log4j.appender.logfile.File = MyApplication.log

Мой файл журнала появляется в каталоге MyDomain / config, но я бы хотел, чтобы он попал в каталог MyDomain / logs. Как я могу этого достичь? Мне не разрешено изменять скрипт startserv.

Заранее спасибо за помощь!

Ответы [ 5 ]

8 голосов
/ 18 сентября 2009

Фактически, именно log4j разрешает переменную $ {catalina.home}, Glassfish объявляет $ {catalina.home} как $ {com.sun.aas.instanceRoot}, который указывает на путь / к / MyDomain /

Вы можете объявить любую переменную в среде GF и поместить ее в log4j.properties, log4j проанализирует их при настройке log4j.

Это действительно полезно для установки параметров конфигурации ведения журнала на основе сервера, используя те же свойства log4.properties для тестирования и развертывания

7 голосов
/ 19 января 2010

Вы можете настроить appender на использование $ {com.sun.aas.instanceRoot}, но в отличие от некоторых других комментариев это должно быть:

log4j.appender.logfile.File=${com.sun.aas.instanceRoot}/logs/MyApplication.log

Это правильное местоположение для журналов в каталоге ../domains/domain угадываемому файлу / журналу.

1 голос
/ 10 сентября 2009

В Tomcat возможно следующее, возможно, Glassfish устанавливает аналогичную переменную среды, указывающую на местоположение ее файловой системы:

log4j.appender.logfile.File=${catalina.home}/logs/MyApplication.log

${catalina.home} - это свойство среды / системы, устанавливаемое Tomcat и указывающее на каталог установки. Log4j способен расширять их, по крайней мере, в PropertyConfigurer.

0 голосов
/ 07 августа 2011

Так как в GlassFish файл попадает в конфиг и логи это его брат, а не

log4j.appender.logfile.File=MyApplication.log

использование

log4j.appender.logfile.File=../logs/MyApplication.log

Протестировано на GlassFish 3.1.1 и работает.

0 голосов
/ 10 сентября 2009

Вам необходимо указать абсолютный путь, а не относительный (при условии Unix-путей):

log4j.appender.logfile.File=/path/to/MyDomain/logs/MyApplication.log
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...