Newsgroup: it.comp.java
Titolo: Log, JTextArea e File

Salve a tutti...
avrei bisogno di implementare un Logger che mi consenta di scrivere su 
piu' destinazioni "contemporaneamente".... che so, una specie di:
voglio scrivere su file:
logManager.add(streamToAFile);
logManager.debugMessage("solo su file");
voglio scrivere anche su un socket (che so, sto inventando)
logManager.add(streamToASocket);
logManager.debugMessage("sia su file che su socket");
e fin qui nulla di strano, mi faccio un Vector di OutputStream e via...
Il mio problema sorge pero' quando voglio che il logger scriva oltre che 
su file anche (ad es) su una JTextArea... non posso ottenere un 
OutputStream sul quale scrivere nella JTextArea.... e non posso neanche 
passare la JTextArea al Logger, che non saprebbe come inviarle le 
stringhe.... esiste un qualche oggetto che mi consenta di fare cio'?
Grazie,
Kali

 wrote in message 3C163452...@email.com...


stringhe.... esiste un qualche oggetto che mi consenta di fare cio'?
Un paio di spunti in ordine sparso che magari ti possono aiutare (ma 
non ne sono sicuro):
JTextArea.getDocument()
StringWriter
ecc.
Potresti scrivere un OutputStream che wrappi la JTextArea.
C'ho provato ;-)
-- 
Ciao
	Fabrizio C.

 Prova un pò? Facci(mi) sapere.
Yez, intanto provo...
a poi,
Kali

>   /*devi implementare write(int)*/
oddioooo!!! OutputStream non ha un'interfaccia.... cazz.... come 
rimpiango l'ereditarietà multipla... altri consigli?
Kali

 rimpiango l'ereditarietą multipla... altri consigli?
tentativo in corso....
wait for me! :)
Kali

Puoi benissimo implementare solo i metodi che ti interessano mentre 
lasciare vuoti quelli che non ti servono, l'importante che ci siano.
Io invece l'ereditarietą multipla non la rimpiango, infatti se da un 
lato ti permette di ovviare a molti problemi, dall'altro lato
l'ereditarietą multipla č sinonimo molto spesso di un'analisi fatta male.


 l'ereditarietą multipla č sinonimo molto spesso di un'analisi fatta male.
Hai ragione, pero' in alcuni casi sarebbe piu' che comoda. Nel mio caso 
ad esempio sono costretto a crearmi una inner class (extends 
OutputStream) nella mia classe (extends JTextArea), che nei metodi 
write() faccia una "delega" ai metodi append() della mia JTextArea...
sto ancora provando, poi vi faccio sapere :)
grazie,
Kali

 Inoltre se poi estendessi JTextArea e implementassi un OutputStream cosě:
ma che minchia HO scritto!!!
exscuse me! Ma dopo un giorno di studio/lavoro avevo il cervello fuso
probabilmente :-((( ((( (((
Bye a tutti

 probabilmente :-((( ((( (((
no problem,
a me succede anche all'inizio della giornata :))
cmq il problema è risolto.
Ho fatto una classe WriterJTextArea che estende JTextArea. Una inner 
class WriterWrapper che estende Writer (uso i Writer anzichè gli 
OutputStream, tanto scrivo stringhe). Un metodo di WriterJTextArea che 
ritorna un oggetto WriterWrapper membro della stessa classe 
WriterJTextArea. Il metodo write di WriterWrapper chiama il metodo 
append di una variabile JTextArea interna alla classe che viene 
inizializzata nel costruttore della classe con il WriterJTextArea che lo 
contiene.
spero di essermi piu' o meno spiegato :) altrimenti se serve posso 
postare del codice.
Kali

 wrote in message 3C18E316...@email.com...

Sicuramente megli di me !!! :-)
Daniele.