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:
[code]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);
}
}[/code]
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:
[code]<?xml version=“1.0” encoding=“UTF-8” ?>
<!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>[/code]
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.