Tomcat Logging при работе в качестве службы Windows - PullRequest
1 голос
/ 02 октября 2009

У меня есть веб-приложение, работающее под Tomcat.

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

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

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

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

Привет

Ответы [ 4 ]

1 голос
/ 02 октября 2009

Файлы журнала stdout и stderr должны были быть созданы в каталоге журналов вашей установки Tomcat.

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

0 голосов
/ 15 июня 2015

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

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

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

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

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

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

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

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

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

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

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

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

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

...