Java.util.logging + servlet: Carregar arquivo de properties

2 respostas
Rafael_Afonso

Olá:

Estou tentando usar a API de logging em meu servlet. Para isso estou fazendo o seguinte.
No meu Servlet, método init():

package bomi.servlet;

import java.util.logging.*;

import javax.servlet.*;
import javax.servlet.http.*;

import bomi.util.*;

public class BomiServlet extends HttpServlet {
    private Logger logger;

    // ...

    public void init(ServletConfig conf) throws ServletException {
        super.init(conf);
        Contexto.getInstance().setPath(
            conf.getServletContext().getInitParameter("conf"));
        Contexto.getInstance().iniciarLogging();
        logger = Logger.getLogger("bomi.servlet.bomiservlet");
        logger.info("Iniciando Servlet");
    }
}

Na classe bomi.Contexto:

package bomi.util;

import java.util.*;
import java.io.*;

public final class Contexto {
    private static Contexto instance;
    private static String path = "conf/";

    /**Construtor privado.
     * 
     */
    private Contexto() {
    }

    /**
     * 
     * @return Retorna instancia única da classe.
     */
    public static Contexto getInstance() {
        if (instance == null) {
            instance = new Contexto();
        }
        return instance;
    }

    public void setPath(String string) {
        path = string;
    }

    /**
     * 
     * @param fileName Nome do arquivo de propriedades. Ele deve estar 
     * localizado no diretíório conf.
     * @return Propriedades relacionadas com o arquivo indicado por fileName.
     */
    public Properties getProperties(String fileName) {
        Properties bomiProperties = new Properties();
        try {
            bomiProperties.load(new FileInputStream(path + fileName));
        } catch (FileNotFoundException fnfEx) {
            throw new BomiException(
                "Nao foi possível localizar o arquivo " + path + fileName);
        } catch (IOException ioEx) {
            throw new BomiException(ioEx);
        }
        return bomiProperties;
    }

    /**
     * 
     * @return
     */
    public Properties getBomiProperties() {
        return this.getProperties("bomi.properties");
    }

    public void iniciarLogging() {
        System.out.println("Carregando propriedades do log: " + path
            + getBomiProperties().getProperty("java.util.logging.config.file"));
        System.setProperty(
            "java.util.logging.config.file",
            path
                + getBomiProperties().getProperty(
                    "java.util.logging.config.file"));
    }

}

O arquivo de properties de logging:

java.util.logging.pattern=bomi.log
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
java.util.logging.handlers = java.util.logging.ConsoleHandler, java.util.logging.FileHandler
java.util.logging.level = ALL
java.util.logging.ConsoleHandler.level = ALL
java.util.logging.FileHandler.level = ALL

Quando acesso o Servlet, aparece as seguintes mensagens no console do Tomcat:

Carregando propriedades do log: C:/java/Tomcat 4.1/webapps/bomi/WEB-INF/conf/logging.properties
13/10/2003 11:14:25 bomi.servlet.BomiServlet init
INFO: Iniciando Servlet

Ou seja, aparentemente está achando o arquivo logging.properties. Entretanto, quando vou procurar pelo arquivo de log (bomi.log) no diretório do Tomcat, não o encontro. Pelo visto o logging está funcionando apenas para console não para arquivo.
Para o pessoal com mais experiência: o que devo fazer?

Grato,

2 Respostas

Paulo_Silveira

ele deve ter gerado o arquivo no diretorio de “running” da aplicacao.
da uma procurada nos dirs do tomcat que tem esse direotio.

alguma coisa/running/suaaplicacao
ele nao ia adivinhar que voce quer o seu log no dir log, entende?

Rafael_Afonso

Paulo:

Não gerou nada não. Aparentemente todo o log está sendo direcionado para o console, uma vez que ele sequer aparece no arquivo de log do Tomcat (<TOMCAT_DIR>/logs/localhost_log.2003-10-13). Vou dar uma olhada em como esta setada a propriedade java.util.logging.config.file. Talvez isso me dê alguma pista sobre o que está acontecendo.

Grato,

Criado 13 de outubro de 2003
Ultima resposta 13 de out. de 2003
Respostas 2
Participantes 2