Várias aplicações web com log4j + tomcat = caca?

Olá

Estou com problemas para usar o tomcat-5.0.28 com 3 aplicações no tomcat, cada uma com seu particular log4j.properties. Buscando aqui no GUJ por log4j recebo a seguinte resposta: Resultado da Busca: 0 tópicos foram encontrados

Alguém aqui já recebeu o erro:

org.apache.commons.logging.LogConfigurationException: No suitable Log constructor . . . . Caused by: java.lang.NoClassDefFoundError: org/apache/log4j/Logger

Se coloco o jar do log4j no common/lib a aplicação funciona mas os logs do tomcat e o das aplicações se perdem. Se não coloco a aplicação dá erro e não sobe.
Se coloco o log4j.properties no diretorio common/classes poderia sumir o erro mas como tenho 3 aplicações com log4j.properties iria fatalmente dar caca.

Alguma sugestão?

[]s
Luca

Você pode colocar o jar do log4j no classpath e ao invés de cada aplicação simplesmente carregar o arquivo log4j.properties padrão, você pode especificar qual é o arquivo a ser carregado (tem na documentação oficial do log4j como fazer isso). Dessa forma, os logs não se perderiam, não é?

Olá

Na verdade cada aplicação carrega seu próprio log4j.properties e é isso que preciso. Esta mensagem de erro aparece para muita gente e googlando não consegui uma solução coerente.

No classpath não posso colocar porque desde os tempos do Java 1.2 que não uso mais isto. Esta variável é completamente desnecessária em qualquer ambiente. cada aplicação deve definir seu próprio classpath e o tomcat faz isto.

[]s
Luca

opa!

cara, talvez tu já tenha tentado isso ou eu não tenha entendido direito o seu problema… mas tu já tentou colocar o jar do log4j no lib de cada uma das aplicações e o .properties no classes de cada uma das aplicações?
acredito que funcione… cada aplicação deveria “carregar o seu log4j” e o seu próprio .properties…

té+

Olá

É exatamente assim que aparece a mensagem de erro.

[]
Luca

eu tinha entendido que somente o .properties estava separado para cada aplicação… foi mal…

quando dá o NoClassDefFound? quando o jar tá no common/lib ou quando tá no lib de cada uma das aplicações?

té+

Se perdem como? Da uma olhada dentro do jar do log4j q deve ter um .properties la… remove ele, talvez seja isso.