2009-10-02 2 views
1

У меня есть веб-приложение под управлением Tomcat.Tomcat Ведение журнала во время работы в качестве службы Windows

Регистрация для различных функций реализована с использованием java.util.logging.

При запуске tomcat через startup.bat создаются файлы ведения журнала и записываются ведение журнала, как ожидалось.

При работе в качестве службы Windows, используя тот же файл войны, выход из ведения журнала практически отсутствует. В файле stdout.log и stderr.log есть несколько (только любой) выход журнала, но не то, что ожидается.

Звучит это знакомо всем? какие шаги вы предприняли, чтобы исправить это?

Привет

+0

Проверьте свойства сервиса - какая команда запускает Windows для запуска Tomcat? –

+0

Служба запускается с вызовом org.apache.catalina.startup.Bootstrap с началом аргумента в режиме JVM – FacilityDerek

ответ

0

Как выясняется, это проблема конфигурации.

При запуске с сайта startup.bat tomcat ссылается на logging.properties в каталоге conf.

При запуске службы вступает в игру jdk/jre/lib logging.properties.

При работе в качестве службы Windows все выходные данные консоли перенаправляются на stdout.log в каталог журналов tomcat.

Попытки захвата регистрации в пользовательских файлах с пользовательскими файлами logging.properties пока не удались.

+1

-1 для «Когда он запускается как служба, запускается jdk/jre/lib logging.properties». Используйте приложение «Монитор Tomcat» для настройки ведения журнала при запуске Tomcat в качестве службы Windows. – kgiannakakis

+0

, так есть способ настроить ведение журнала для использования log4j вместо этого? –

1

STDOUT и лог STDERR файлы должны быть созданы в каталоге журналов вашей установки Tomcat.

Для настройки ведения журнала используйте приложение «Настроить Tomcat». Вы можете установить уровень ошибок и расположение файлов журнала там.

0

Убедитесь, что среда Tomcat в обоих случаях одинакова. Проверьте пути и настройки в редакторе службы Tomcat. Не используйте стандартный диалог свойств Windows для служб, но запустите tomcat.exe с //ES//name, где name - это имя службы.

0

Когда tomcat запускается как служба, его конфигурация регистрации по умолчанию фактически отменяет любую конфигурацию регистрации конкретного приложения. Как сказал Аарон, наилучшим способом настройки конфигурации является использование tomcatw // ES // tomcat_service_name, например. tomcat_service_name может быть Tomcat5 в зависимости от ваших настроек установки (также, используйте tomcatw, а не tomcat - оба исполняемых файла можно найти в C: \ Program Files \ Apache Software Foundation \ Tomcat 5.0 \ bin). В этом post объясняется, как вы можете убедиться, что вы используете правильное имя службы (если в диалоговом окне нет значений, имя, вероятно, неверно).

Я бы опубликовал изображение, но у меня нет достаточного количества репутации. На вкладке Java VM введите конфигурацию в Java Options, например. -Dlog4j.configuration = service.log4j.properties

Файл, содержащий вашу конфигурацию ведения журнала, затем можно поместить в каталог классов tomcat, например. C: \ Program Files \ Apache Software Foundation \ Tomcat 5.0 \ server \ classes.

Существует несколько мест, где вы можете поместить файл конфигурации ведения журнала. Сначала я попытался указать полный путь для файла конфигурации ведения журнала, но log4j, похоже, проверяет только определенные пути. Как указано в этом post, поместите -Dlog4j.debug в качестве первой строки в параметрах Java и вы можете отлаживать, что делает log4j.Каталог классов серверов указан как один из возможных путей поиска.

При создании файла log4j.properties назовите его чем-то иным, чем log4j.properties, например. service.log4j.properties. Именование его log4j.properties приводит к тому, что файл приложения log4j.properties может быть найден, что может переопределить вашу конфигурацию, но затем будет игнорироваться службой tomcat.

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