You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4j-dev@logging.apache.org by Kitching Simon <Si...@orange.ch> on 2001/02/07 12:41:54 UTC

PATCH: New classes: DatagramStreamAppender & friends

Hi log4j developers....

Here, for your consideration, is a set of files that
implement an Appender which sends messages
to a remote host/port via UDP (datagram).

There was brief discussion of this Appender on the
log4j-user group, about a week ago. Ceki suggested
that the Appender send serialized log event objects
over UDP; while this approach has a number of
advantages, I have decided to instead perform the
message formatting at the client end, mainly so
that:
(a) the UDP server application does not have to be in java
(b) non-java clients can send messages to the same UDP
     server.

The appender has been named "DatagramStringAppender"
to allow someone to write a serialization-based version at
some later time, if desired, without any name confusion.
------------------------------
Notes:

DatagramStringAppender is based on SyslogAppender, but
with a fair number of changes.

DatagramStringWriter is based on SyslogWriter, with a few changes.
In particular, it takes an "encoding" parameter, so that the character 
encoding used can be specified, and a "port".

SingleLineTracerPrintWriter is almost identical to 
SyslogTracerPrintWriter; just the name & some comments
have changed. [I didn't want to call a class called SyslogXXX
from the DatagramStreamAppender classes]
------------------------------

If this patch is accepted, then it may be worth rewriting SyslogAppender
to use the DatagramStringWriter and SingleLineTracerPrintWriter
classes. These classes should be compatible with SyslogAppender,
as they implement the same functionality, or a superset of the
Syslog functionality, and have more "general" names.
------------------------------
 <<DatagramStringAppender.java>> 


 <<DatagramStringWriter.java>> 

 <<SingleLineTracerPrintWriter.java>> 

--------------------------------
And here's a simple perl UDP server, and an xml
config file for testing the appender.
 <<logconfig.xml>> 

 <<udpserver.pl>> 

Regards,

Simon