tenho um projeto modularizado, com um módulo web e um ejb (usando o Netbeans), e estou com dificuldades para fazer o log com o log4j.
Preciso fazer o log nas classes Session Bean, mas onde quer que eu coloque o log4j.properties… ele não é lido.
No caso de projetos modularizados, onde é o melhor lugar para se colcoar o log4j.properties, uma vez que vou fazer logs tanto no módulo ejb quanto no módulo web?
tô usando o glassfish… mas futuramente rodará no JBoss tb.
Eu tentei implementar um listener, para configurar o Log4J, pois deixando ele encontrar sozinho o log4j.properties não tá funcionando:
e estou colocando o log4j.properties no mesmo diretório do listener… mas não está rolando.
Além disso, esse listener fica no módulo web… creio que não funcionará para o módulo ejb.
Tô realmente perdido com o log4j :?
Fazendo os exemplos encontrados por aí, com classes java simples e fora de uma IDE funciona que é uma beleza, mas dentro da IDE tá problemático.
Sei que é só porque não peguei o jeito ainda… não costumava usar antes… mas chego lá
Alguma sugestão?
Obrigado!
ozielneto
Rafael,
nas aplicações Java SE, você precisa colocar no Classpath da aplicação.
nas aplicações Java EE, você precisar configurar via o AppServer
pois se você colocar dentro da sua aplicação, você pode encontrar problemas de classloader.
O JBoss já possui o LOG4J como serviço, para configurar o GLASSFISH é muito simples também.
Assim, sua aplicação só precisa usar a categorias criadas no arquivo de properties.
Bom estudo.
Luiz_Gustavo
ozielneto:
Rafael,
… para configurar o GLASSFISH é muito simples também…
Assim, sua aplicação só precisa usar a categorias criadas no arquivo de properties.
assim, eu espero que a categoria instanciada herde de rootCategory.
Realmente não consigo forçar a utilização de um properties de dentro da aplicação?
Seria interessante que o properties estivesse na aplicação, pois queria deixar isso independente do App Server.
Luiz_Gustavo
Neste Post no theserverside, uma das dicas é deixar que o Log4J encontre sozinho o arquivo de propriedades, mas isso parece não funcionar (no meu caso).
Dieval_Guizelini
Luiz,
eu sempre coloquei o arquivo do log4j na pasta WEB-INF/classes
Você está utilizando o locale? pode ser que esteja procurando um arquivo com pt_BR ou outro.
att
Dieval
Luiz_Gustavo
Dieval Guizelini:
Luiz,
eu sempre coloquei o arquivo do log4j na pasta WEB-INF/classes
Você está utilizando o locale? pode ser que esteja procurando um arquivo com pt_BR ou outro.
att
Dieval
Olá Dieval,
então, em outros projetos, quando usamos o Eclipse e a estrutura de diretórios contempla um diretório classes dentro do WEB-INF, costumamos colocar o arquivo aí também.
Porém nesse projeto a estrutura de diretórios é diferente…
Preciso usar log nos 2 módulos. Estou tentando colocar inicialmente no módulo de ejb, da maniera mostrada acima, colocando o properties na raiz do diretório dos fontes, mas nada. :?
E posteriormente preciso fazer com que a mesma configuração valha para o módulo web.
Alguma idéia?
Dieval_Guizelini
Luiz,
se você colocar na aplicação web uma configuração do log4j ela não ficou acessível ao módulo da aplicação?
outro palpite seria tentar fazer a leitura do arquivo que estivesse na mesma pasta do .class utilizando
InputStream is;
Properties prop = new Properties();
try {
is = Thread.currentThread().getClass().getResourceAsStream("Access.properties");
prop.load(is);