Subject: Re: question about NetBSD syslog
To: Jeremy C. Reed <reed@reedmedia.net>
From: Aleksey Cheusov <cheusov@tut.by>
List: netbsd-users
Date: 05/23/2007 22:31:40
 >> Hi, all.
 >> 
 >> I want syslog has the following logic.
 >> 
 >> func (facility, level){
 >>    if (facility = <F>) {
 >>       log_to (<FILE>)
 >>       return <----------------  see here
 >>    }
 >>    ...
 >> }
[skipped]

> I don't see any feature like that.

> Maybe you can add a syslogd.c switch and add a check for your
> feature in the
I think I can but I'm sure that this code
will not be commited to NetBSD cvs :)
syslogd is one of the kernel part of NetBSD ;)

> Or maybe we can help you with your syslog.conf configuration? Is something 
> not working how you want it? (If so share an example.)
No, thanks.
I just have some thought.
Currently syslogd works like this

func do_syslog (line)
{
   if (match1(line)){
      action1(line)
   }
   if (match2(line)){
      action2(line)
   }
   ...
}

I think the following scheme

func do_syslog (line)
{
   if (match1(line)){
      action1(line)
   }elif if (match2(line)){
      action2(line)
   }elif ...
   ...
}

scheme is a reasonable alternative.

Finally it whould be great to treat syslong.conf like this.

func do_syslog (line){
   if (match1 (line)){
      action1 (line)
      [ return ]
   }
   if (match2 (line)){
      action2 (line)
      [ return ]
   }
   ...
}

Square breakets mean an optional part.

P.S.
I don't think installing another syslog implementation from pkgsrc
is good idea. So...

-- 
Best regards, Aleksey Cheusov.