[RESOLVIDO]Como reconhecer log4j.properties da aplicação no JBOSS 7.1?

13 respostas
A

Bom pessoal estou tendo dificuldades para que meu arquivo log4j.properties seja reconhecido usando o JBOSS7.
Segui o que está no doc do JBOSS7 aqui mas não deu certo.
Desabilitei o logj4 do jboss pelo jboss-deployment-structure e coloquei o jar no projeto, no doc diz para colocar o log4j.properties na pasta lib, achei meio estranho.
Bom pessoal se alguém puder me dar uma força, agradeço.

13 Respostas

L

Eu coloco no local onde o container procura as classes, tipo WEB-INF/classes ou dentro de algum jar em WEB-INF/lib/[xyz].jar

A

No WEB-INF/classes eu já tentei, vou tentar com o .jar .
Mas você usa o JBOSS7.1?Foi preciso fazer o procedimento descrito no link que passei?

edit: Criei o .jar com o arquivo log4j.properties e não funcionou também.

J

Olá AnjoVingador

Coloque o arquivo no Java sources… se seu projeto for no eclipse é no src e o jar do log4j tem que estar na WEB-INF/lib, isso se você quiser que o arquivo esteja na sua aplicação você também pode criar um módulo no JBoss AS 7 e “chamar” esse arquivo de lá o que eu acho até mais interessante. Por exemplo:

<dependencies> <module name="my.module.custom.log4j" /> </dependencies>

Lembrando que já que vamos utilizar o log4j da sua app no arquivo jboss-deployment… tem que dar o execlusion:

<exclusions> <module name="org.apache.log4j" /> </exclusions>

Hoje vou fazer um exemplo de como externalizar esse arquivo e te passo o link

Abraços

A

jmag:
Olá AnjoVingador

Coloque o arquivo no Java sources… se seu projeto for no eclipse é no src e o jar do log4j tem que estar na WEB-INF/lib, isso se você quiser que o arquivo esteja na sua aplicação você também pode criar um módulo no JBoss AS 7 e “chamar” esse arquivo de lá o que eu acho até mais interessante. Por exemplo:

<dependencies> <module name="my.module.custom.log4j" /> </dependencies>

Lembrando que já que vamos utilizar o log4j da sua app no arquivo jboss-deployment… tem que dar o execlusion:

<exclusions> <module name="org.apache.log4j" /> </exclusions>

Hoje vou fazer um exemplo de como externalizar esse arquivo e te passo o link

Abraços


Obrigado pela resposta.
Bom eu dei um exclusion no jboss-deployment como mencionado, mas mesmo assim não obtive sucesso.
Coloquei no log4j.properties no src (sim meu projeto é no eclipse). Coloquei jboss-deployment… na pasta WEB-INF.
Segui o procedimento do doc do jboss7.1, mas mesmo assim nada.
Ficaria muito agradecido se me passasse este link do seu exemplo.

J

Tendi… bom to criando uma app básica aqui só pra fazer o post no blog sobre log4j e assim que terminar(ainda hoje) te passo o link.

Abraços

J

Me deu uma preguiça de escrever rsrs mas eu fiz os testes aqui e funcionou...

O primeiro passo é criar um projeto do tipo web no eclipse e como server runtime adicione o JBoss AS 7.1.1.

Agora no WEB-INF/classes (src) da sua aplicação crie o arquivo log4j.properties e adicione o conteúdo abaixo nesse arquivo de configuração:

log4j.rootLogger=warn, stdout, R
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) * %m%n
log4j.logger.com.jbossdivers=INFO, R

Baixe o jar do log4j: log4j-1.2.17.jar e coloque no WEB-INF/lib da sua aplicação.

Crei uma servlet para os testes de log:

package com.jbossdivers.test;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/LoggerServlet")
public class LoggerServlet extends HttpServlet {
	
	private static org.apache.log4j.Logger logger = org.apache.log4j.Logger.getLogger(LoggerServlet.class);

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException,
IOException {
 
	  
	   logger.info("***********Tempo agora*************");
	   logger.info(System.currentTimeMillis());
	   logger.info("*********************************************");
	  

		PrintWriter out = response.getWriter();
		
		out.println("Apenas testando o log!");
		}
}
No WEB-INF crie o arquivo jboss-deployment-structure.xml e adicione o conteúdo abaixo:
<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure>
  <deployment>
   <exclusions>
      <module name="org.apache.log4j" />
   </exclusions>
  </deployment>
</jboss-deployment-structure>
20:53:08,153 INFO  [stdout] (http-localhost-127.0.0.1-8080-1)  INFO [http-localhost-127.0.0.1-8080-1] (LoggerServlet.java:21) * ***********Tempo agora*************

20:53:08,153 INFO  [stdout] (http-localhost-127.0.0.1-8080-1)  INFO [http-localhost-127.0.0.1-8080-1] (LoggerServlet.java:22) * 1354315988153

20:53:08,158 INFO  [stdout] (http-localhost-127.0.0.1-8080-1)  INFO [http-localhost-127.0.0.1-8080-1] (LoggerServlet.java:23) * ***********************************

Só dá uma olhada nos parâmetros e confs do log4j.properties pq só copiei e coloquei aqui rápido...

Link do projeto.. http://www.4shared.com/zip/wLA-yWKy/MyAppExample.html

Abraços

A

Funcionou aqui agora, os passos são realmente estes que você passou.
Eu havia feito tudo certo, aí me veio a cabeça renomear os arquivo jboss-deployment-structure.xml para exatamente o mesmo nome.
E quem diria ele passou a reconhecer o arquivo e consegui gravar meu arquivo de log.
Muito obrigado pela força, realmente eu não sei o que aconteceu.

Edit: Sem querer abusar, mas você sabe como eu uso o .jar do jsf que eu por na aplicação e não o do JBOSS7.1?

J

hehehe excelente então AnjoVingador :slight_smile:

O bom que fica aqui documentado pra proxima pessoa rsrs

Coloca resolvido no tópico e bom fim de semana :smiley:

Abraços

J

A outra coisa já que está trabalhando com o JBoss 7 no meu blog tem uma porrada de coisa sobre vários assuntos dá um conferida.

:smiley:

A

jmag:
A outra coisa já que está trabalhando com o JBoss 7 no meu blog tem uma porrada de coisa sobre vários assuntos dá um conferida.

:D

Valeu vou conferir o blog sim.
To iniciando no JBOSS agora achei ele um pouco mais complicado de se trabalhar que o GlassFish, mas tudo é a prática né.
Obrigado e bom final de semana.

J

hehe sim, mas como vc mesmo disse tudo é prática e se precisar de ajuda estamos ai :slight_smile:

Grande abraço e bom fim de semana.

J

Oi…

Relendo o post agora que eu vi rsrs

Fiz um post disso ano passado…

Abraços

U

Olá pessoal, sei que este tópico já está resolvido, mas como o meu problema é o mesmo, vou postar aqui mesmo, mas se for preciso (orientado) crio outro.

Mas ok, vamos lá, estou vendo todo mundo feliz com seus Logs, mas o meu continua da mesma forma, usando o do JBoss.

Minha aplicação foi feita com base no Maven, já tinha excluído das dependências o “common-loggin” e o “jboss-logging”, conforme abaixo:

<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-context</artifactId>
			<version>${org.springframework-version}</version>
			<exclusions>
				<!-- Exclude Commons Logging in favor of SLF4j -->
				<exclusion>
					<groupId>commons-logging</groupId>
					<artifactId>commons-logging</artifactId>
				</exclusion>
			</exclusions>
		</dependency>

                <dependency>
			<groupId>org.hibernate</groupId>
			<artifactId>hibernate-entitymanager</artifactId>
			<version>4.2.5.Final</version>
			<scope>provided</scope>
			<exclusions>
				<!-- Excluído Jboss Logging em favor do SLF4j -->
				<exclusion>
					<groupId>org.jboss.logging</groupId>
					<artifactId>jboss-logging</artifactId>
				</exclusion>
			</exclusions>
		</dependency>

E adicionado a dependência para SL4J

<!-- LOGGING -->
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-api</artifactId>
			<version>1.7.5</version>
		</dependency>
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>jcl-over-slf4j</artifactId>
			<version>1.7.5</version>
		</dependency>

No “src/main/resources” tenho o meu arquivo log4j.xml

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">

        <!-- Appenders -->
        <appender name="console" class="org.apache.log4j.ConsoleAppender">
                <param name="Target" value="System.out" />
                <layout class="org.apache.log4j.PatternLayout">
                        <param name="ConversionPattern" value="%d{dd MMM yyyy HH:mm:ss,SSS} %-5p: %c %C %M %m%n" />
                </layout>
        </appender>
        
        <!-- Application Loggers -->
        <logger name="br.com.orion">
                <level value="info" />                         
        </logger>

        
        <!-- 3rdparty Loggers -->
        <logger name="org.springframework.core">
                <level value="info" />
        </logger>
        
        <logger name="org.springframework.beans">
                <level value="info" />
        </logger>
        
        <logger name="org.springframework.context">
                <level value="info" />
        </logger>

        <logger name="org.springframework.web">
                <level value="info" />
        </logger>

        <!-- Root Logger -->
        <root>
                <priority value="warn" />
                <appender-ref ref="console" />
        </root>
        
</log4j:configuration>

Mas nunca que funcionou, alterei para o tipo texto “log4j.properties” e não resolveu.

Em seguida, vendo os posts por aqui, criei o arquivo jboss-deployment-structure no WEB-INF

<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure>
  <deployment>
    <exclusions>
      <module name="org.apache.log4j" />
      <module name="org.jboss.logging" /> 
    </exclusions>
  </deployment>
</jboss-deployment-structure>

Já pedi a São LOGIN e nada, continua usando o default do Jboss.

Alguém tem alguma noção do que estou fazendo errado?

Falew!

Criado 30 de novembro de 2012
Ultima resposta 25 de set. de 2013
Respostas 13
Participantes 4