Problemas para logar no Servidor Tomcat usando Api Logging

0 respostas
D

Saudações.

Tenho uma classe servlet denominada UsuarioChat que possui um método que gera um log num arquivo txt cujo código do método é:

public void addLog(String log) throws IOException{
         if (logs.size() == 100) {
         logs.remove(0);
      }
         logs.add(log + "
");
         String datalog = new SimpleDateFormat("dd.MM").format(new Date());
            /*File arquivoLog = new File("C:\Tomcat\webapps\Chat\WEB-INF\logs\log"
                                      + datalog + ".txt");*/
      
         Logger logger = Logger.getAnonymousLogger();
             
         FileHandler fh = new FileHandler fh = new FileHandler(getServletContext().getRealPath("//logs//meuArquivo.log");
          System.out.println("Passei aqui");
         fh.setFormatter(new SimpleFormatter());

          logger.addHandler(fh);
         logger.info(log);
   }

Essa classe esta dentro de Chat/classes dentro do diretorio de servlets do Tomcat.
Dentro de Chat, tenho um diretório chamado logs e quero que o log seja gravado ali sem especificar o endereço físico(C:…) e sim o endereço no servidor.
Mas não acontece nada, se faço somente:

FileHandler fh = new FileHandler(getServletContext().getRealPath("/meuArquivo.log"));

ele grava no raíz do C:.

Tentei com esta classe:

import java.io.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.util.logging.*;

public class teste extends HttpServlet {
   public void doGet(HttpServletRequest req,
                      HttpServletResponse res)
    throws ServletException, IOException{
        PrintWriter out = res.getWriter();
        out.println("<html>");
        out.println("<head>");
        out.println("<title> Testando Servlet </title>");
        out.println("</head>");
        out.println("<body>");
        out.println("Bem Vindo ao Centro de Teste do Servlet");
      out.println("<br> <u> Funcionou :-)");
        out.println("</body>");
        out.println("</html>");

      Logger logger = Logger.getAnonymousLogger();
        FileHandler fh = new FileHandler(getServletContext( ).getRealPath("//logs//arquivo.txt"));
      fh.setFormatter(new SimpleFormatter());
      logger.addHandler(fh);
      logger.info("testando o arquivo");
    }

e funcionou corretamente.

Será que estou usando função ou api errada?

Alguém pode me orientar?

Criado 25 de maio de 2004
Respostas 0
Participantes 1