Logs ausentes - Tomcat 5.5 + Ubuntu 8.04

4

Resumo

Recém-instalado (via apt-get ) o Tomcat em um Ubuntu 8.04 LTS de 64 bits recém-instalado funciona, mas não registra (parece) nada. Veja também " O que eu tentei " e " Fechando nele nele " abaixo.

Mais detalhes

Como os mantenedores de pacotes fizeram uma grande quantidade de trabalho, fazer as coisas básicas funcionarem tem sido uma questão bastante direta de executar apt-get e apontar o Tomcat para o JDK correto. E isso funciona. Mas não parece registrar nada.

Até onde eu sei, a infra-estrutura de log é controlada via logging.properties files (já que este é o Tomcat 5.5, não o Tomcat 5.0), incluindo um central (que você pode sobrescrever por aplicativo web) em /etc/tomcat55/logging.properties ( /etc/tomcat55 é symlinked como /var/lib/tomcat55/conf ). Eu não estou ignorando isso, e não consigo ver por que não estou vendo algo . Aqui está o arquivo:

# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

handlers = 1catalina.org.apache.juli.FileHandler, 2localhost.org.apache.juli.FileHandler, 3manager.org.apache.juli.FileHandler, 4admin.org.apache.juli.FileHandler, 5host-manager.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler

.handlers = 1catalina.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler

############################################################
# Handler specific properties.
# Describes specific configuration info for Handlers.
############################################################

1catalina.org.apache.juli.FileHandler.level = FINE
1catalina.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
1catalina.org.apache.juli.FileHandler.prefix = catalina.

2localhost.org.apache.juli.FileHandler.level = FINE
2localhost.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
2localhost.org.apache.juli.FileHandler.prefix = localhost.

3manager.org.apache.juli.FileHandler.level = FINE
3manager.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
3manager.org.apache.juli.FileHandler.prefix = manager.

4admin.org.apache.juli.FileHandler.level = FINE
4admin.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
4admin.org.apache.juli.FileHandler.prefix = admin.

5host-manager.org.apache.juli.FileHandler.level = FINE
5host-manager.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
5host-manager.org.apache.juli.FileHandler.prefix = host-manager.

java.util.logging.ConsoleHandler.level = FINE
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter


############################################################
# Facility specific properties.
# Provides extra control for each logger.
############################################################

org.apache.catalina.core.ContainerBase.[Catalina].[localhost].level = DEBUG
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].handlers = 2localhost.org.apache.juli.FileHandler

org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].level = INFO
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].handlers = 3manager.org.apache.juli.FileHandler

org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/admin].level = INFO
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/admin].handlers = 4admin.org.apache.juli.FileHandler

org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].level = INFO
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].handlers = 5host-manager.org.apache.juli.FileHandler

# For example, set the com.xyz.foo logger to only log SEVERE
# messages:
#org.apache.catalina.startup.ContextConfig.level = DEBUG
#org.apache.catalina.startup.HostConfig.level = DEBUG
#org.apache.catalina.session.ManagerBase.level = DEBUG

A única alteração que fiz foi:

org.apache.catalina.core.ContainerBase.[Catalina].[localhost].level = DEBUG

... que foi definido como INFO como todos os outros, mas eu queria fazer com que ele registrasse alguma coisa , então atualizei para DEBUG . Naturalmente eu reiniciei o Tomcat.

Eu posso compilar e ver um JSP, então novamente o Tomcat está trabalhando , mas /var/lib/tomcat5.5/logs está teimosamente vazio. Mesmo se eu forçar um erro por ter um JSP inválido ou algo assim, não receberei nada.

O que eu tentei

  • Eu já passei pelas etapas listadas nas Perguntas frequentes sobre o Tomcat para garantir que a distro não tenha Não estraguei tudo (eles não fizeram).
  • Eu procurei por um diretório logs em outro lugar, caso não seja /var/lib/tomcat5.5/logs (embora isso tenha sido criado pela instalação).
  • Naturalmente, reiniciei o Tomcat depois de fazer qualquer alteração.

Uma coisa que eu não fiz foi chown all a ser de propriedade do usuário tomcat55 que a instalação criou. logs é de propriedade de tomcat55 , mas vários outros diretórios e arquivos são de propriedade de root , embora sejam legíveis por todos. Eu não fiz isso porque ( trava a cabeça ) eu não consigo descobrir como fazer o backup completo da árvore existente para que eu possa desfazer a alteração prontamente. A árvore destruída possui links simbólicos absolutos entrelaçando /etc/tomcat55 , /var/lib/tomcat55 e /usr/share/tomcat55 que eu conheço . Eu poderia aumentar cada um desses, mas não sei ao certo que não estou sentindo falta de algo.

EDITAR:

Encerrando-se nele

Ok, descobri que está escrevendo coisas no estilo console para /var/log/daemon.log . Ufa! Pelo menos isso me dá um lugar para começar. E está emitindo reclamações como:

jsvc.exec[18819]: Can't load log handler "2localhost.org.apache.juli.FileHandler"
jsvc.exec[18819]: java.lang.ClassNotFoundException: 2localhost.org.apache.juli.FileHandler

E eu não estou surpreso, 2localhost.org.apache.juli.FileHandler não é um nome de classe válido (pacotes não podem começar com dígitos!). Então, estou suspeitando que o arquivo logging.properties padrão seja ... não é bom. Relatará de volta.

    
por T.J. Crowder 12.10.2009 / 14:37

2 respostas

4

Eu descobri - o pacote não funciona com o mais recente pacote Java6 da Sun, sun-java6-jdk ; a correção é bem direta quando você a encontra:

Depois de encontrar o daemon.log , encontrei os erros listados na minha edição sobre a questão, mas esses são apenas um efeito colateral desse erro:

jsvc.exec[18819]: Could not load Logmanager "org.apache.juli.ClassLoaderLogManager"
jsvc.exec[18819]: java.security.AccessControlException: access denied (java.lang.RuntimePermission setContextClassLoader)

... que ocorre porque o pacote, por padrão, executa o Tomcat usando o gerenciador de segurança Java por essa configuração em /etc/init.d/tomcat5.5 :

# Use the Java security manager? (yes/no)
TOMCAT5_SECURITY=yes

... mas o pacote não define as permissões em JULI (a implementação de registro padrão) que o Java6 mais recente da Sun parece precisar para que isso funcione. Versões anteriores do Java6 aparentemente estavam bem. Este tópico recente na lista de discussão do usuário do tomcat apontou na direção certa ; o usuário em questão estava recebendo o erro acima e, eventualmente, Mark Thomas descobriu que essa permissão:

permission java.lang.RuntimePermission "setContextClassLoader";

... estava faltando em catalina.policy . E, de fato, se eu adicionar essa permissão à seção JULI de /etc/tomcat5.5/policy.d/03catalina.policy e reiniciar o Tmocat, o erro desaparece e recebo arquivos de log! Huzzah !

Esteja avisado: se você também instalar o tomcat5.5-webapps para obter os exemplos, o aplicativo do gerente, etc., haverá outras configurações necessárias para ativar em 03catalina.policy . Claro, você sempre tem a opção de desligar o gerenciador de segurança, mas é isso que é para .

    
por 12.10.2009 / 17:39
0

Todo o relatório de erros oficial sobre esse problema está aqui: link

    
por 04.12.2009 / 17:40