Desenvolvi um web service usando o Axis2 como framework e o Tomcat 6.0 como servidor web. Até aí tudo funciona bem. O problema surge quando eu tento adicionar o log4j ao meu web service.
Inicialmente coloquei o arquivo log4j.xml em pastas internas ao diretório da do meu ws. Aparentemente, o ws não consegue acessar o arquivo de configuração log4j.xml e portanto não encontra os appenders necessários para o log.
Tentei então colocar esse arquivo na pasta …WEB-INF/classes do próprio Tomcat e aí funcionou. O problema neste caso é que o arquivo de log passa a constar todo o log de todas as webapps do Tomcat.
Alguém sabe o que posso fazer para ter um arquivo de log somente para o meu web service?
Segue meu método que faz o log e o log4j.xml:
public static void writeLog(String message, Logger logger, Level level)
{
try
{
logger.log(level, message);
} catch (Exception e) {
logger.error("Erro ao escrever no arquivo de log - " + e.toString()+ ": " + e.getMessage());
}
}
<log4j:configuration xmlns:log4j=“http://jakarta.apache.org/log4j/” debug=“false”>
<appender name="consoleAppender" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss} [%p %c{1}] %m%n" />
</layout>
</appender>
<!-- Declarar local correto para salvar o arquivo em produção -->
<appender name="fileAppender" class="org.apache.log4j.FileAppender">
<param name="file" value="MoWASMSWS.log" />
<param name="append" value="true"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss} [%p %c{1}] %m%n" />
</layout>
</appender>
<root>
<appender-ref ref="fileAppender"/>
<appender-ref ref="consoleAppender" />
</root>
</log4j:configuration>
Obrigado desde já.
Guilherme