<!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
 this work for additional information regarding copyright ownership.
 The ASF licenses this file to You under the Apache License, Version 2.0
 (the "License"); you may not use this file except in compliance with
 the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

 Unless required by applicable law or agreed to in writing, software
 distributed under the License is distributed on an "AS IS" BASIS,
 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.

-->


Delivered-To: urba-cgu@urbanet.ch 
Mailing-List: contact log4j-dev-help@jakarta.apache.org; run by ezmlm 
List-Post: <mailto:log4j-dev@jakarta.apache.org> 
List-Help: <mailto:log4j-dev-help@jakarta.apache.org> 
List-Unsubscribe: <mailto:log4j-dev-unsubscribe@jakarta.apache.org> 
List-Subscribe: <mailto:log4j-dev-subscribe@jakarta.apache.org> 
Reply-To: "LOG4J Developers Mailing List" <log4j-dev@jakarta.apache.org> 
Delivered-To: mailing list log4j-dev@jakarta.apache.org 
From: Kitching Simon <Simon.Kitching@orange.ch> 
To: "'log4j-dev@jakarta.apache.org'" <log4j-dev@jakarta.apache.org> 
Subject: PATCH: New classes: DatagramStreamAppender & friends 
Date: Wed, 7 Feb 2001 12:41:54 +0100 
X-Mailer: Internet Mail Service (5.5.2650.21) 
X-Spam-Rating: h31.sny.collab.net 1.6.2 0/1000/N 


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
