Index: ossp-pkg/fsl/fsl.pod RCS File: /v/ossp/cvs/ossp-pkg/fsl/fsl.pod,v rcsdiff -q -kk '-r1.6' '-r1.7' -u '/v/ossp/cvs/ossp-pkg/fsl/fsl.pod,v' 2>/dev/null --- fsl.pod 2002/07/24 07:57:04 1.6 +++ fsl.pod 2002/07/24 13:11:37 1.7 @@ -106,57 +106,185 @@ existing program by just linking in the latest lib_l2. The main program remains unmodified. -FIXME T_ID, channel_cons, try to remove the word "streams" +B ::= B + +B ::= B + | B '->' B + | B '->' '{' B '}' + +B ::= B + | B ';' B + +B ::= B '/' + B ':' B + | B ':' B + | B + +B ::= B + | '(' B ')' + +B ::= B + | B '|' B + +B ::= 'panic' + | 'critical' + | 'error' + | 'warning' + | 'notice' + | 'info' + | 'trace' + | 'debug' + +B ::= B B + +B ::= 'buffer' + | 'fd' + | 'file' + | 'filter' + | 'irc' + | 'noop' + | 'null' + | 'pipe' + | 'prefix' + | 'smtp' + | 'socket' + | 'syslog' + | ... + +B ::= I + | '(' ')' + | '(' B ')' -B ::= B - -B ::= - | B - | B => stream - | B => '{' streams '}' - -B ::= - | stream - | stream ';' streams - -B ::= - | B '/' B ':' B - | B ':' B - | B - -B ::= - | T_ID - | '(' B ')' - -B ::= - | T_ID - | T_ID '|' B - -B::= I - | '(' ')' - | '(' B ')' - -B ::= - | B - | B ',' B +B ::= B + | B ',' B -B ::= - | paramter '=' value - - -Here is a table of available channels that lists their names and -parameters including the type of each parameter. - -buffer (INT size, INT interval, INT levelflush); -fd (INT filedescriptor); -file (STR path, INT append, INT perm); -filter (STR regex, INT negate, INT nocase); -irc (STR progname, STR localhost, STR localuser, STR nickname, STR username, STR realname, STR channel, INT join, STR host, STR port, INT timeout); -pipe (STR execmode, STR runtime, STR path); -prefix (STR prefix, STR timezone); -smtp (STR progname, STR localhost, STR localuser, STR from, STR rcpt, STR subject, STR host, STR port, INT timeout); -socket (STR proto, STR host, STR port, INT timeout); -syslog (STR target, STR remotehost, INT remoteport, STR localhost, STR facility, STR ident, INT logpid); +B ::= B '=' B + +B ::= m/[a-zA-Z][a-zA-Z0-9_-]*/ + +B ::= single-quoted, double-quoted + or unquoted text + +Here is a table of available channels that lists their B and +B including the type of each parameter. + +FIXME mandatories, defaults, output vs. filterchannels + + buffer (INT size, + INT interval, + INT levelflush); + + fd (INT filedescriptor); + + file (STR path, + INT append, + INT perm); + + filter (STR regex, + INT negate, + INT nocase); + + irc (STR progname, + STR localhost, + STR localuser, + STR nickname, + STR username, + STR realname, + STR channel, + INT join, + STR host, + STR port, + INT timeout); + + noop () + + null () + + pipe (STR execmode, + STR runtime, + STR path); + + prefix (STR prefix, + STR timezone); + + smtp (STR progname, + STR localhost, + STR localuser, + STR from, + STR rcpt, + STR subject, + STR host, + STR port, + INT timeout); + + socket (STR proto, + STR host, + STR port, + INT timeout); + + syslog (STR target, + STR remotehost, + INT remoteport, + STR localhost, + STR facility, + STR ident, + INT logpid); + + + EXAMPLE for a very simple l2spec writing to STDERR (FD#2) + + fd(filedescriptor=2) + + EXAMPLE for a simple l2spec writing to a file + + file(path="/var/log/file") + + EXAMPLE for a very complex l2spec + + noop + -> { + (info): filter( + regex="foo" + ) + -> syslog( + remotehost="localhost" + ); + info: prefix( + ) + -> { + debug/error: buffer( + size=1024 + ) + -> file( + path="a" + ); + (trace|debug)/(trace): buffer( + size=65536 + ) -> + file( + path="b" + ) + }; + prefix() -> { + warning: filter( + negate=1, + regex="foo" + ) + -> irc( + host=irc.dev.de.cw.net + ); + error: filter( + nocase=1, + regex="foo" + ) + -> smtp( + host=sv1.dev.de.cw.net + ); + panic: smtp( + host=sv1.dev.de.cw.net + ) + } + }; =head1 EXAMPLE