Ler log da aplicacao

Bom dia galera,

To com um probleminha aqui e nao sei nem como pesquisar.

a questao é a seguinte.

em todo meu sistema eu vou dando System.out.println(TEXTO) conforme as operacoes vao sendo executadas.

no meu Jframe principal eu tenho um textarea que eu quero alimentar com esses prints. Sacaram?

como eu faço essa leitura?
quanto a atualizacao automática eu tava pensando em uma nova thread, é isso mesmo?

abrç a todos!

Por que não gera esse log de operações para um arquivo texto? Depois é só lê do mesmo arquivo.

porque caso a aplicacao gere algum erro ja aparece no textarea tb

alem de eu ter ficado curioso de como faz isso :smiley:

Haaa… :D. Isso não sei como faz :oops:

ninguem ai sabe como fazer isso pessoal???

Oi,

Fiz um programa exatamente agora, que escreve a saida do System.out no JTextArea. Como não tenho tempo, não vou colocar os comentários agora, se tiver dúvidas é só falar.

[code]import java.io.OutputStream;
import java.io.PrintStream;
import java.util.Date;

import javax.swing.JFrame;
import javax.swing.JTextArea;

public class TesteOutPutTrace
{
/**
Trace default da aplicação.
*/
public static PrintStream
DefaultTrace = System.out;

/**
Construtor da classe.
*/
public TesteOutPutTrace()
{
	WindowOutPut lo_area = new WindowOutPut();
	lo_area.setVisible(true);
	DefaultTrace = new PrintStream(lo_area.TRACE, true);
	System.setOut(DefaultTrace);
	System.out.println("a");
	System.out.println("b");
	System.out.println("c");
}

private class WindowOutPut extends JFrame
{
	public OutputStream TRACE = new TraceConsoleOutputStream();
	
	public JTextArea text;
	
	public WindowOutPut()
	{
		setSize(500, 500);
		text = new JTextArea();
		getContentPane().add(text);
	}
	
	private class TraceConsoleOutputStream extends OutputStream
	{
		public void write(int b) {
			
			text.append(""+b);
		}

		public void write(byte[] b) {
			
			text.append(new String(b));
		}
		
		public void write(byte[] b, int a, int c) {
			
			text.append((c > 2 ? new Date() +" - " : "") + new String(b,a,c));
		}
	}
}

/**
@param args
*/
public static void main(String[] args)
{
	new TesteOutPutTrace();
}

}[/code]

OBS: Você pode ter isso em classes separadas, coloquei tudo como inner.

Tchauzin!