org.apache.log4j.net
public class: TelnetAppender [javadoc |
source]
java.lang.Object
org.apache.log4j.AppenderSkeleton
org.apache.log4j.net.TelnetAppender
All Implemented Interfaces:
OptionHandler, Appender
The TelnetAppender is a log4j appender that specializes in
writing to a read-only socket. The output is provided in a
telnet-friendly way so that a log can be monitored over TCP/IP.
Clients using telnet connect to the socket and receive log data.
This is handy for remote monitoring, especially when monitoring a
servlet.
Here is a list of the available configuration options:
| Name |
Requirement |
Description |
Sample Value |
| Port |
optional |
This parameter determines the port to use for announcing log events. The default port is 23 (telnet). |
5875 |
- author:
< - a HREF="mailto:jay@v-wave.com">Jay Funnell
| Nested Class Summary: |
|---|
| protected class | TelnetAppender.SocketHandler | The SocketHandler class is used to accept connections from
clients. It is threaded so that clients can connect/disconnect
asynchronously. |
| Methods from org.apache.log4j.AppenderSkeleton: |
|---|
|
activateOptions, addFilter, append, clearFilters, doAppend, finalize, getErrorHandler, getFilter, getFirstFilter, getLayout, getName, getThreshold, isAsSevereAsThreshold, setErrorHandler, setLayout, setName, setThreshold |
| Method from org.apache.log4j.net.TelnetAppender Detail: |
public void activateOptions() {
try {
sh = new SocketHandler(port);
sh.start();
}
catch(Exception e) {
e.printStackTrace();
}
super.activateOptions();
}
all of the options have been set, create the socket handler and
wait for connections. |
protected void append(LoggingEvent event) {
sh.send(this.layout.format(event));
if(layout.ignoresThrowable()) {
String[] s = event.getThrowableStrRep();
if (s != null) {
int len = s.length;
for(int i = 0; i < len; i++) {
sh.send(s[i]);
sh.send(Layout.LINE_SEP);
}
}
}
}
Handles a log event. For this appender, that means writing the
message to each connected client. |
public void close() {
if (sh != null) {
sh.close();
try {
sh.join();
} catch(InterruptedException ex) {
}
}
}
|
public int getPort() {
return port;
}
|
public boolean requiresLayout() {
return true;
}
This appender requires a layout to format the text to the
attached client(s). |
public void setPort(int port) {
this.port = port;
}
|