Tomcat: рекомендации по ведению журнала - PullRequest
2 голосов
/ 05 апреля 2010

Я прочитал здесь несколько вопросов, касающихся Tomcat и журналирования, но я все еще действительно не понимаю «большую картину», поэтому мой вопрос:

Как и где должны регистрироваться мои веб-приложения?

По умолчанию при моей настройке журналы Tomcat 6.0.20 идут в следующем файле / appender:

. / Апач-кот-6.0.20 / журналы / catalina.out

Предполагается ли, что мои веб-приложения также регистрируются в этом файле / appender?

Допустим, мой случай тривиально прост, и у меня есть только один сервлет:

import ... // What do I import here in order to be able to log?

public class SOServlet extends HttpServlet {

    public void doGet(
        final HttpServletRequest request,
        final HttpServletResponse response
    ) throws IOException, ServletException {
    ... // I want to log here, what do I write?

Что за ошибки известно, что на одном и том же Tomcat работает несколько веб-приложений? (очевидно, после прочтения различных вопросов есть много ошибок).

Как насчет .war, мне нужно поместить log4j / sl4f / commons-logging / что угодно в моем .war?

Например, я прочитал это, и я немного запутался, чем раньше:

http://tomcat.apache.org/tomcat-6.0-doc/logging.html

1 Ответ

1 голос
/ 05 апреля 2010

Как и где мои веб-приложения должны вести свою регистрацию?

Это зависит. Вы можете использовать ServletContext#log() (который, в свою очередь, доступен в сервлетах унаследованным методом getServletContext()), чтобы зарегистрировать его в том же файле журнала, что и сам сервлет-контейнер, или перейти на отдельный logger / logfile с помощью под каждым slf4j и / или logback / log4j. Обычной практикой является предоставление каждому веб-приложению собственного регистратора, чтобы у вас было больше свободы и контроля при ведении журнала.

Для интересующего вас случая здесь - это вики Tomcat по теме.

Что за ошибки, зная, что на одном и том же Tomcat работает несколько веб-приложений? (по-видимому, после прочтения различных вопросов есть много ошибок).

Если это касается ведения журналов: в итоге вы получите плохой обзор в лог-файле и меньше свободы и контроля при ведении журнала отдельных веб-приложений.

Как насчет .war, мне нужно поместить log4j / sl4f / commons-logging / что угодно в моем .war?

Независимо от используемой библиотеки: если она относится к веб-приложению, поместите ее в WAR. Если он является общим для всех веб-приложений, поместите его в общую библиотеку appserver. Если это специфично для сервера приложений, поместите его в библиотеку приложения.

...