Gravar em arquivo txt usando servlet

5 respostas
D

Saudações!
Estou rodando um servlet, tenho uma classe que possui um método que funciona como um log simples.
O que eu preciso é que esse log seja salvo em um arquivo txt na pasta da aplicacao.
Fiz o seguinte código:

public void addLog(String log) throws IOException{
			if (logs.size() == 100) {
			logs.remove(0);
		}
			logs.add(log + "
");
   			File arquivoLog = new File("saida.txt");
			boolean adicionarArquivo = arquivoLog.exists();

			FileOutputStream fos = new FileOutputStream(arquivoLog, adicionarArquivo);
			BufferedOutputStream bos = new BufferedOutputStream(fos);

			PrintStream ps = new PrintStream(bos);
			ps.println(log);
			ps.flush();
			fos.close();
	}

Mas infelizmente não está sendo nem criado o arquivo e nem gravado nada.

Alguém pode me indicar a falha?

Obrigado!

5 Respostas

_fs

Desculpe as perguntas cretinas mas:

  • não ta ocorrendo nenhuma exceção?
  • você tem certeza que a variavel “log” tem conteudo?
  • você tem certeza que o arquivo não está sendo criado em outra pasta que não é a que você espera?
danieldestro

Ele deve estar criando este arquivo na pasta BIN do Tomcat. Dá uma olhada lá!

Porque você não usa o Log4J da Apache? É tão mais simples e ele está pronto já.

Abraços

D

danieldestro disse:

Ele serve para logs de exceções ou qualquer coisa que queira gravar em log, como um texto?

Daniel funcionou, ele realmente salvou no Tomcatin
como faço para ser publicado na pasta que eu indicar?

Obrigado pelo auxílio.

LIPE
Realmente esta sendo salvo em outra pasta! :lol: :crazyeyes: :multi:
Obrigado pela atenção!

danieldestro

Exato… e tbm pode enviar emails, gravar log no banco ou o que vc quiser inventar com ele. Mas basicamente ele faz logging em arquivos texto.

Ou você informa o caminho completo quando vc cria o File, ou senao, no seu servlet, vc faz assim:

getServletContext( ).getRealPath( “/meuArquivo.log” );

e ele grava no raiz da pasta da sua aplicação.

D

danieldestro

Consegui resolver o problema colocando o caminho direto.

Não sei por que mas não consegui utilizando getServletContext( ).getRealPath( “/meuArquivo.log” );

Mas vou estudar direito esse comando e dar uma analisada mais de perto no Log4J.

No mais muito obrigado pela sua ajuda!

Criado 20 de maio de 2004
Ultima resposta 20 de mai. de 2004
Respostas 5
Participantes 3