Gravar em arquivo txt usando servlet

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!

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?

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

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!

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.

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!