Log4J - só sai log das classes do war, das classes do jar não sai

0 respostas
Roger75

Olá pessoal,

Tenho uma aplicação J2EE na qual nos foi requisitado colocar o Log4J.

Implementamos uma servlet para carregar a configuração. Seu código está assim:

public class Log4jServlet extends HttpServlet {

	private static final long serialVersionUID = -8448341114771849656L;

	private static final Logger logger = Logger.getLogger(Log4jServlet.class);

	public void init(ServletConfig config) throws ServletException {
		super.init(config);
		loadLogConfiguration();
		logger.info("LOG inicializado com sucesso...");
	}

	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		String dispatch = req.getParameter("dispatch");
		if("reloadConfig".equals(dispatch)) {
			loadLogConfiguration();
			logger.info("LOG re-inicializado com sucesso...");
		}
	}
	
	private void loadLogConfiguration() {
		// get path to log4j configuration file
		String confFilePath = getInitParameter("log4j");

		// configure log4J
		DOMConfigurator.configure(confFilePath);
	}
}
No web.xml coloquei o servlet:
<servlet>
		<servlet-name>Log4jServlet</servlet-name>
		<servlet-class>
			br.gov.sixxx.servlet.Log4jServlet
		</servlet-class>
		<init-param>
			<param-name>log4j</param-name>
			<param-value>/log_ias/config-log4j/log4j.xml</param-value>
		</init-param>
		<load-on-startup>0</load-on-startup>
  </servlet>
O arquivo log4j.xml está dessa forma:
&lt?xml version="1.0" encoding="UTF-8" ?&gt
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/'>
    <appender name="SIXXX" class="org.apache.log4j.DailyRollingFileAppender">
        <param name="Append" value="true"/>
        <param name="Encoding" value="ISO-8859-1"/>
        <param name="File" value="D:/log_ias/SIXXX/SIXXX.log"></param>
	<param name="DatePattern" value="'.'yyyy-MM-dd-a"></param>
	   
	<layout class="org.apache.log4j.PatternLayout">
	    <param name="ConversionPattern" value="[%5p] %d{yyyy/MM/dd HH:mm:ss} %c{1} - %m%n"/>
	</layout>
    </appender>

    <logger name="br.gov.sixxx">
        <level value="DEBUG"/>
    </logger>
    
	
    <root>
        <priority value="WARN"/>	
        <appender-ref ref="SIXXX"/>
    </root>
</log4j:configuration>

Nas classes crio o atributo logger, como na classe Log4jServlet, e onde desejo que saia o log, coloco logger.debug("texto do log");
O que ocorre é que nas classes que estão empacotadas na parte war o log sai normalmente, mas o que está no jar não sai, queria saber por quê.

Obrigado.

Criado 21 de dezembro de 2006
Respostas 0
Participantes 1