log4j / JTextArea - how to initialize/implement?

M

m.zywno

Hiya,

I'm developing a Swing based application. I want to use Log4J to log
events not only to files but also to JTextArea instance present on one
of tabs. AFAIK I should use JTextAreaWriter(extends
java.io.Writer) and a custom class that extends
org.apache.log4j.WriterAppender. (btw if you already see the better
solution - let me know)

The problem for me is how to initialize such an appender. At the moment
when log4j initializes, there is no JTextArea instance yet. Sometime
later, during application lifetime, when a JTextArea instance is
created, I cannot see how to reconfigure(or create?) my custom appender
to add logging to that JTextArea instance.

Is it possible? Thanks for any hints

Maciej Zywno
 
O

Oliver Wong

Hiya,

I'm developing a Swing based application. I want to use Log4J to log
events not only to files but also to JTextArea instance present on one
of tabs. AFAIK I should use JTextAreaWriter(extends
java.io.Writer) and a custom class that extends
org.apache.log4j.WriterAppender. (btw if you already see the better
solution - let me know)

The problem for me is how to initialize such an appender. At the moment
when log4j initializes, there is no JTextArea instance yet. Sometime
later, during application lifetime, when a JTextArea instance is
created, I cannot see how to reconfigure(or create?) my custom appender
to add logging to that JTextArea instance.

Is it possible? Thanks for any hints

If the time between (when the appender is initialized and when the
jtextarea is created) is non deterministic (i.e. depends on user
interaction) then google for the producer/consumer problem. Create a shared
buffer that the WriterAppender will write to, and the JTextAreaWriter will
read from. If it's deterministic, then this will still work, but there may
be an easier solution that doesn't involve multithreading.

- Oliver
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,770
Messages
2,569,584
Members
45,075
Latest member
MakersCBDBloodSupport

Latest Threads

Top