An easy to use logging library
Liblogging is an easy to use, portable, open source library for system logging.
It comes with an BSD-style license. Liblogging was initiated by Rainer Gerhards.
The original idea was to provide
a very slim BEEP look-alike to implement with a few hundered lines of code. Well, during development
new ideas popped up and the design goal now has evolved to provide a library useful for all kinds of
Liblogging is unique in the way that it was specifically designed for system logging and ease of use.
There are many BEEP libraries out there and most of them support the syslog reliable RAW profile.
However, these libraries have a very complex API, which is overdone just for logging. Software
implementors stay away from those libraries. We hope that liblogging will make reliable syslog available
to everyone. There is a very short, easy to use and learn API.
The library is still in its infancy. The
full liblogging documentation as well as
source code is available (please note: the source code link points to a
generic file name without version. The versionless one is always the most current. This makes it
easier for me to provide links to third parties).
Liblogging is developed under Win32 and has been ported to *nix. The author tries
to keep both platforms current. Coming changes may result in the temporary loss of the Linux
platform, but the author hopes to find some helping hands should this happen...
- Current Release: 0.5.0
- Platforms: Win32, Linux, [AIX, Solaris, FreeBSD (all tested with 0.3.1 only)]
- Protocols Supported:
- RFC 3195/RAW, client AND server
- RFC 3195/COOKED, client only
- timestamps according to ID syslog-sign-12
Subscribe to liblogging's mailing lists.
- 2003-09-12 - liblogging 0.5.0 is now available. It comes with the addition of a client-side
COOKED profile (not yet on the server side) as well as a full-blown message
- 2003-09-02 - Moved the instable source (currently pre-0.4.0) to
SourceForge.Net CVS. I will keep this version
healthy as I move along. Only instable version will be found there for the time being (else use the
- 2003-08-29 - MonitorWare Agent 1.3 now supports rfc 3195/raw for both sending
and receiving syslog messages - it is the world's first windows application doing so.
See the news release
for complete details.
- 2003-08-29 - liblogging 0.3.1 is now available. This
version is the first one to include support for building servers (listeners). Please note that
there is NO 0.3.0 version - this number was eaten up by an incomplete copy passed on to some limited
folks. While version 0.3.1 is the first to support servers, the API is not yet stable. It will eventually
change, so people using the library immediately should be prepared to change there code. The client
API, on the other hand, is guaranteed to remain the same. So in short words it is safe to base a
client on liblogging, but a little dangerous to do the same with a server. ;) The server API does not
yet support synchronization to the server's actual workload. Depending on your threading model, this may
be a little uncomfortable...
- 2003-08-26 - liblogging is now also on
sourceforge.net - while the main project home page remains here, we will use the sourceforge
discussion lists, forums and bug trackers.
news release for complete details.
- 2003-08-25 - initial code base for 0.3.0 more or less finished. The server runs and talks to
other products. It needs a lot of polishing - I think we are still some days away from a public release.
- 2003-08-12 - first commercially available client based on liblogging available - Adiscon's
logger syslog command line tool.
See news release for details.
- 2003-08-12 - liblogging 0.2.0 is now available. This
is a stable build with a stable API. If you develop applications against the 0.2.0 API, these applications
will work with all future versions of liblogging. Promised. So it is a good idea to being using it
now. 0.2.0 is a 0.x release because it is not feature complete. However, the features now in are
implemented quite solidly, so you can actually use it in your code. Thanks to Devin Kowatch, the
library now compiles and runs under Win32, Linux, AIX, Solaris and FreeBSD. If you have another
*nix variant, you may want to give it a try, ports have been show to be quite easy.
- 2003-08-05 - liblogging 0.1.1 is now available. This
is an interim version. It now compiles and runs cleanly under Linux (verified with Red Hat Linux 8.0).
Many thanks to Devin Kowatch, who provided initial proof that a port would be simple and also provided
code for the socket layer and many more tipps. As such, liblogging is now available both for Win32 as well
as Linux. It has successfully talked to SDSC syslogd from both platforms. The 0.1.1 release was a bit
unscheduled - as such it contains some incomplete linked list code, which is nowhere being used - just
in case you wonder ;)
- 2003-08-04 - liblogging 0.1.0 source is now available.
The (client side) API is now stable and should not need to be changed any time in the future. It is now
up to around 3000 lines of code.
- Initial proof-of-concept that rfc 3195 can be done with very few overhead. Roughly 300 (very dirty)
lines of code did the trick. Proof available online as part of beta 1 of Adiscon
logger 1.1 tool. Please note that during the development we found some bugs in SDSC syslog and
we have worked around them so that we could complete work. As such, logger 1.1beta1 work with SDSC
syslogd 1.0.0 but not any higher release.
The exact order of future development has not yet been decided, but
it is likely that it will be close in the way the topics are ordered in this
- Implementation of a BEEP XML parser. This is needed to fully support BEEP channel 0
- Implementation of support for listener profiles. DONE
- Support for a higher-lever representation of the syslog message as an easy to deal with
object in its own right. DONE
- client-side support for RFC 3195 / COOKED DONE
- Inclusion of the client-side functionality in Adiscon's MonitorWare line of products.
- Inclusion of the server-side functionality in Adiscon's MonitorWare line of products.
- inclusion of traditional UDP based syslog
- Test-implementation of syslog-international (also to see if syslog-international
can easily enough be put in code).
- inclusion of syslog-sign
- server-side support for RFC 3195 / COOKED
- relay support for RFC 3195 / COOKED
- Improvments to the server-side API
- Eventually support for tuning profiles, which will provide encryption. This will be done
with the help of openssl.
- inclusion of relay functionality of RFC 3195 / COOKED
- the creation of a drop-in API replacement for the BSD syslog calls
We are also looking into the IETF intrusion detection WGs - there is some interesting
work going on which could eventually be included in liblogging.
The information is current as of 2003-08-03. If you would like to contact the author,
please email Rainer Gerhards and watch for the reply with
information on how to get to his real mail box. (The mailto is just a fake to feed the spammers ;)).