[RESOLVIDO] Como pegar o printStackTrace() e mandar pra um arquivo?

3 respostas
J

Pessoal me auxiliem neste problema, hoje estou debilitado mentalmente, cansado, pouca coisa está saindo da cuca. :oops:

Tenho uma aplicação num servidor de Batch online, por regra do cliente, não temos acesso ao log gerado nas aplicações (é quase um tiro no próprio pé) pois isso dificulta pra resolver o problema deles, mas fazer o que…
e acontece que estou fazendo um log na mão, e escrevendo num arquivo remoto via OutPutStream.

As exceptions eu estou pegando e escrevendo no arquivo via exception.getMessage();

Porém eu estou precisando pegar o printStackTrace(), completo.
Mas esse método é void, minha questão é como conseguir pegar todo conteúdo que é impresso no printStackTrace() para que eu possa manipular e fazer um OutPutStream lá pro arquivo de log.

Agradeço a ajuda de todos.

3 Respostas

Q

Cara você não devia estar usando algum framework de log?

mas respondendo a sua pergunta

Exception exception = new Exception();
exception.printStackTrace(new PrintWriter(new FileOutputStream(new File("saida.txt"))));

Por favor, não esqueça de fechar o arquivo…

J

qmx:
Cara você não devia estar usando algum framework de log?

mas respondendo a sua pergunta

Exception exception = new Exception();
exception.printStackTrace(new PrintWriter(new FileOutputStream(new File("saida.txt"))));

Por favor, não esqueça de fechar o arquivo…

eu até usaria o Log4j, mas tem um * (é proibido usar libs que não estiver disponível no servidor, e não tem nenhuma disponível)
** é o cliente

Agradeço sua ajuda, achei uma solução semelhante : http://www.guj.com.br/posts/list/49791.java

eu estava tentando com JCifs, tenho que passar usuário e senha pra escrever no diretório…

vlw

T
public static void main(String[] args) throws Exception {
        
        try  {
            a();
        } catch (Exception ex)  {
            ex.printStackTrace(new PrintWriter(new FileWriter(new File("c:/temp/log.txt")), true));
        } 
    }
    
    static void a() {
        throw new RuntimeException("Oppps");
    }
Criado 4 de fevereiro de 2009
Ultima resposta 4 de fev. de 2009
Respostas 3
Participantes 3