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]

Responder a