You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4j-user@logging.apache.org by Dimitri PISSARENKO <di...@gmx.net> on 2002/07/17 13:28:10 UTC
Printing log messages into a text area
Hello!
Is it possible to write an appender which prints the log messages in a
textarea of a window?
If yes, are there any examples for that?
Thanks
Dimitri PIssarenko
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>
Re: Printing log messages into a text area
Posted by Dimitri PISSARENKO <di...@gmx.net>.
Thanks!
On Wed, 17 Jul 2002 23:19:12 -0400, you wrote:
>Dimitri PISSARENKO wrote:
>
>>Hello!
>>
>>Is it possible to write an appender which prints the log messages in a
>>textarea of a window?
>>
>>If yes, are there any examples for that?
>>
>>Thanks
>>
>>Dimitri PIssarenko
>>
>>--
>>To unsubscribe, e-mail: <ma...@jakarta.apache.org>
>>For additional commands, e-mail: <ma...@jakarta.apache.org>
>>
>>
>>
>>
>I wrote one of those a little while ago:
>
>// basic imports
>import java.util.*;
>import java.io.*;
>import java.text.*;
>import java.awt.*;
>import javax.swing.*;
>import javax.swing.text.*;
>
>// log4j-specific imports
>import org.apache.log4j.*;
>import org.apache.log4j.spi.LoggingEvent;
>
>public class Log4JGUIConsoleSessionLog extends AppenderSkeleton {
>
> protected static SimpleAttributeSet simpleAttributeSet = new
>SimpleAttributeSet();
>
> protected int width;
> protected int height;
> protected int tlcornerXcoord;
> protected int tlcornerYcoord;
> protected String resetScrollPoint = "false";
> protected Document document;
> protected Log4JConsoleSessionLogFrame logFrame = null;
>
> public Log4JGUIConsoleSessionLog() {
> super();
> }
>
> public void close() {
> }
>
> public boolean requiresLayout() {
> return true;
> }
>
> public Layout getLayout() {
> return layout;
> }
> public void setLayout(Layout layout) {
> this.layout=layout;
> }
>
> public void setName(String name) {
> this.name = name;
> }
>
> // Java bean-style get/set methods for parameters
> public int getWidth() {
> return width;
> }
> public void setWidth(int width) {
> this.width = width;
> }
> public int getHeight() {
> return height;
> }
> public void setHeight(int height) {
> this.height = height;
> }
> public int getTlcornerXcoord() {
> return tlcornerXcoord;
> }
> public void setTlcornerXcoord(int tlcornerXcoord) {
> this.tlcornerXcoord = tlcornerXcoord;
> }
> public int getTlcornerYcoord() {
> return tlcornerYcoord;
> }
> public void setTlcornerYcoord(int tlcornerYcoord) {
> this.tlcornerYcoord = tlcornerYcoord;
> }
> public String getResetScrollPoint() {
> return resetScrollPoint;
> }
> public void setResetScrollPoint(String resetScrollPoint) {
> this.resetScrollPoint = resetScrollPoint;
> }
>
> /**
> * Append the event's message to the Document
> */
> protected void append(LoggingEvent event) {
>
> if (logFrame == null) {
> logFrame = new
>Log4JConsoleSessionLogFrame(width, height);
> document = logFrame.getDocument();
> // Center the frame and show it
> logFrame.validate();
> logFrame.pack();
> Dimension screenSize =
>Toolkit.getDefaultToolkit().getScreenSize();
> logFrame.setLocation(tlcornerXcoord,tlcornerYcoord);
> logFrame.setVisible(true);
> }
> try {
> String text = getLayout().format(event);
> document.insertString(document.getLength(),
>text, simpleAttributeSet);
> if ("true".equals(resetScrollPoint)) {
>
>logFrame.getJTextArea().setCaretPosition(document.getLength());
> }
> }
> catch (BadLocationException ble) {
> ble.printStackTrace();
> }
> }
>
>
> class Log4JConsoleSessionLogFrame extends JFrame {
>
> protected Document document = null;
> protected JTextArea textArea = new JTextArea();
>
> public Log4JConsoleSessionLogFrame(int width, int height) {
> super("Log4JConsoleSessionLog");
> setTitle("Log4JConsoleSessionLog");
>
> setBackground(Color.white);
> getContentPane().setLayout(new BorderLayout());
>
> JPanel topPanel = new JPanel();
> topPanel.setLayout(new BorderLayout());
> getContentPane().add(topPanel, BorderLayout.CENTER);
>
> textArea.setEditable(false);
> document = textArea.getDocument();
> JScrollPane scrollPane = new JScrollPane(textArea);
>
>scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
> //scrollPane.setPreferredSize(new Dimension(800,
>500));
> scrollPane.setPreferredSize(new Dimension(width,
>height));
> topPanel.add(scrollPane, BorderLayout.CENTER );
> }
>
> public Document getDocument() {
> return document;
> }
>
> public JTextArea getJTextArea() {
> return textArea;
> }
> }
>}
>
>
>--
>Mike Norman - mwnorman@sympatico.ca
>"'We have two ears and one mouth, so we may listen twice as much as we speak' -
>Epictetus. Aha! This obviously explains many people's attitude to Usenet: "We
>have ten fingers and two eyes, so we may type five times as much drivel as we actually bother to read." - alt.humor.best-of-usenet
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>
Re: Printing log messages into a text area
Posted by Mike Norman <mw...@sympatico.ca>.
Dimitri PISSARENKO wrote:
>Hello!
>
>Is it possible to write an appender which prints the log messages in a
>textarea of a window?
>
>If yes, are there any examples for that?
>
>Thanks
>
>Dimitri PIssarenko
>
>--
>To unsubscribe, e-mail: <ma...@jakarta.apache.org>
>For additional commands, e-mail: <ma...@jakarta.apache.org>
>
>
>
>
I wrote one of those a little while ago:
// basic imports
import java.util.*;
import java.io.*;
import java.text.*;
import java.awt.*;
import javax.swing.*;
import javax.swing.text.*;
// log4j-specific imports
import org.apache.log4j.*;
import org.apache.log4j.spi.LoggingEvent;
public class Log4JGUIConsoleSessionLog extends AppenderSkeleton {
protected static SimpleAttributeSet simpleAttributeSet = new
SimpleAttributeSet();
protected int width;
protected int height;
protected int tlcornerXcoord;
protected int tlcornerYcoord;
protected String resetScrollPoint = "false";
protected Document document;
protected Log4JConsoleSessionLogFrame logFrame = null;
public Log4JGUIConsoleSessionLog() {
super();
}
public void close() {
}
public boolean requiresLayout() {
return true;
}
public Layout getLayout() {
return layout;
}
public void setLayout(Layout layout) {
this.layout=layout;
}
public void setName(String name) {
this.name = name;
}
// Java bean-style get/set methods for parameters
public int getWidth() {
return width;
}
public void setWidth(int width) {
this.width = width;
}
public int getHeight() {
return height;
}
public void setHeight(int height) {
this.height = height;
}
public int getTlcornerXcoord() {
return tlcornerXcoord;
}
public void setTlcornerXcoord(int tlcornerXcoord) {
this.tlcornerXcoord = tlcornerXcoord;
}
public int getTlcornerYcoord() {
return tlcornerYcoord;
}
public void setTlcornerYcoord(int tlcornerYcoord) {
this.tlcornerYcoord = tlcornerYcoord;
}
public String getResetScrollPoint() {
return resetScrollPoint;
}
public void setResetScrollPoint(String resetScrollPoint) {
this.resetScrollPoint = resetScrollPoint;
}
/**
* Append the event's message to the Document
*/
protected void append(LoggingEvent event) {
if (logFrame == null) {
logFrame = new
Log4JConsoleSessionLogFrame(width, height);
document = logFrame.getDocument();
// Center the frame and show it
logFrame.validate();
logFrame.pack();
Dimension screenSize =
Toolkit.getDefaultToolkit().getScreenSize();
logFrame.setLocation(tlcornerXcoord,tlcornerYcoord);
logFrame.setVisible(true);
}
try {
String text = getLayout().format(event);
document.insertString(document.getLength(),
text, simpleAttributeSet);
if ("true".equals(resetScrollPoint)) {
logFrame.getJTextArea().setCaretPosition(document.getLength());
}
}
catch (BadLocationException ble) {
ble.printStackTrace();
}
}
class Log4JConsoleSessionLogFrame extends JFrame {
protected Document document = null;
protected JTextArea textArea = new JTextArea();
public Log4JConsoleSessionLogFrame(int width, int height) {
super("Log4JConsoleSessionLog");
setTitle("Log4JConsoleSessionLog");
setBackground(Color.white);
getContentPane().setLayout(new BorderLayout());
JPanel topPanel = new JPanel();
topPanel.setLayout(new BorderLayout());
getContentPane().add(topPanel, BorderLayout.CENTER);
textArea.setEditable(false);
document = textArea.getDocument();
JScrollPane scrollPane = new JScrollPane(textArea);
scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
//scrollPane.setPreferredSize(new Dimension(800,
500));
scrollPane.setPreferredSize(new Dimension(width,
height));
topPanel.add(scrollPane, BorderLayout.CENTER );
}
public Document getDocument() {
return document;
}
public JTextArea getJTextArea() {
return textArea;
}
}
}
--
Mike Norman - mwnorman@sympatico.ca
"'We have two ears and one mouth, so we may listen twice as much as we speak' -
Epictetus. Aha! This obviously explains many people's attitude to Usenet: "We
have ten fingers and two eyes, so we may type five times as much drivel as we actually bother to read." - alt.humor.best-of-usenet
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>