E ai pessoal,
eu tenho um bloco inicializador static em um servlet, a partir dele eu configuro o
log4j e/ou o java.util.logging.
(na verdade habilitei o java.util.logging para rastrear erros na inicializacao do
log4j) A questao eh a seguinte as
informacoes de configuracao (no caso paths com nomes de arquivos) estao em Strings
(constantes) definidas
em Interfaces. A questao eh a seguinte: assim que eu acesso uma constante (atributos
declarados em uma
interface sao por definicao public e final) definida na interface o log para, dai a
minha suspeita em relacao ao
classloader.
No trecho de codigo abaixo tem os objetos logger (do Log4j) e o objeto jLogger
(java.util.logging.Logger). o
primeiro bloco estatico foi incluido para debuggar o segundo bloco estatico, isto esta
funcionando bem, pois o
arquivo incomingServlet.txt esta sendo criado.
A questao encontra-se nas duas primeiras linhas do segundo bloco estatico. A primeira
linha que eh apenas uma
literal string eh gravada no incomingServlet.txt, mas a linha immediatamente posterior
nao e o log para
de "respirar". Como a segunda linha tem um acesso a uma constante da interface
ConfigsI e eu estou num bloco
static (executado no momento em que a claase eh carregada) eu suspeito que seja um
problema da ordem de
carga que classloader adota.
Alguem tem alguma sugestao?
private static java.util.logging.Handler h = null;
private static java.util.logging.Logger jLogger = null;
static {
try{
//Formattter sf = new SimpleFormat
h = new java.util.logging.FileHandler("C:\\OMNIPRES\\incomingServlet.txt");
h.setFormatter(new java.util.logging.SimpleFormatter());
java.util.logging.Logger.getLogger
("com.immediate.omnipres.server.servlets.incoming.IncomingServlet").addHandler(h);
jLogger = java.util.logging.Logger.getLogger
("com.immediate.omnipres.server.servlets.incoming.IncomingServlet");
jLogger.setLevel(java.util.logging.Level.FINEST);
///logger.fine("*********STATIC INIT*********");
}catch(Exception e){
e.printStackTrace();
}
}
private static Logger logger = null;
static {
try{
jLogger.fine("Init log4j " + " I�m breathing");
jLogger.fine("Init log4j " + com.immediate.omnipres.server
.ConfigI.INCOMING_LOG_FILE);
logger = Logger.getLogger (IncomingServlet.class.getName());
jLogger.fine("logger" + logger);
jLogger.fine("INCOMING_FILE: " + com.immediate.omnipres.server
.ConfigI.INCOMING_LOG_FILE);
PropertyConfigurator.configure(com.immediate.omnipres.server
.ConfigI.INCOMING_LOG_FILE);
} catch (Exception e){
jLogger.log(java.util.logging.Level.WARNING, "CCACACACAAC", e);
}finally{
jLogger.fine("finish log4j " + com.immediate.omnipres.server
.ConfigI.INCOMING_LOG_FILE);
}
<Padilha id="Nilseu">
Nilseu Perside Ortiz Padilha Junior
Desenvolvedor Java - J2EE
Immediate Consultoria e Sistemas
http://www.immediate.com.br
Ciencia da Computacao - ULBRA
<Quote>
Rejeitamos reis, presidentes e votos. Acreditamos em puro consenso e codigo eficiente.
- Dave Clark
</Quote>
<Quote>
One exam does not a (J2EE) architect make. - Master Yoda
</Quote>
</Padilha>
---------------------------------------------------------------------
Para cancelar a subscri��o, envie mensagem para:
[EMAIL PROTECTED]
Para comandos adicionais, envie mensagem para: [EMAIL PROTECTED]