OSSP CVS Repository

ossp - History for /ossp-pkg/l2/l2_spec.c
Not logged in
[Honeypot]  [Browse]  [Home]  [Login]  [Reports
[Search]  [Ticket]  [Timeline
  [Directory]  [Omit Milestones

DateVersion Description
2005-Oct-03 10:08    1.12    Check-in [5217]: Adjust copyright messages for new year 2005. By rse. (diff)
2005-Jan-24 16:03    1.11    Check-in [4979]: Adjust copyright messages for new year 2005. By rse. (diff)
2003-Jan-06 12:41    1.10    Check-in [3065]: - remove trailing whitespaces - adjust copyright messages - consistently use "OSSP l2" - consistently talk about "Flexible Logging" - use standard OSSP ASCII-art By rse. (diff)
2002-Jul-30 21:08    1.9    Check-in [2437]: polish for release By rse. (diff)
2002-Jan-02 18:07    1.8    Check-in [1492]: bump copyright year By rse. (diff)
2001-Dec-22 23:18    1.7    Check-in [1450]: Fix l2_spec_error function and remove again the not really needed l2_env_verrorinfo function. By rse. (diff)
2001-Dec-22 23:04    1.6    Check-in [1448]: remove warning By rse. (diff)
2001-Dec-14 13:42    1.5    Check-in [1427]: Whoohooo! Add support for location tracking. This way the reported errors contain line, column, context and found/expected information. Now the specification parser is full featured... By rse. (diff)
2001-Nov-30 10:44    1.4    Check-in [1389]: Allow a channel tree specification to be a printf-style string to make the API more powerful and to remove the burden from the application to pre-format the specification in an own buffer. By rse. (diff)
2001-Nov-07 17:43    1.3    Check-in [1272]: reduce includes By rse. (diff)
2001-Nov-07 17:35    1.2    Check-in [1271]: cleanup and documentation By rse. (diff)
2001-Nov-07 17:17    1.1    Check-in [1265]: HEADS UP, guys:

Here comes the first cut for the long-awaited channel tree specification parser and channel tree builder. This certainly makes L2 finally THE killer library in the logging field. Woohooo... and the crowd goes wild!

It allows one to build an arbitrary complex logging channel tree out of a single textual specification. An example follows:

    noop -> {
        prefix(prefix="[%d-%m-%Y/%H:%M:%S] %L test[%P]: ", timezone="local")
        -> filter(regex="hecking", negate="0")
           -> buffer(size="800")
              -> file(path="l2_test.log",append="1",perm="420");
        error: syslog(ident="L2-Test", facility="user",
                      remotehost="en1", logpid="1", target="remote");
        panic: smtp(rcpt="rse@engelschall.com", host="en1", port="25"
    }

This allows one to log nice timestamp-prefixed messages containing the word "hecking" to a buffered file. Additionally if the message has a level higher or equal to "error" it also logs it remotely via UDP to the syslogd on en1. And additionally if the message is a panic message, it is also sent out as an Email via SMTP to the MTA on en1.

Ever thought a C library has to be dull and simple? ;)

PS: This stuff certainly needs more polishing and cleanup and also a few things I'll enhance in the future (for instance to remove the restriction that parameter values have to be in quotation marks, etc.). By rse.

CVSTrac 2.0.1