In that case, put !relayd at the top of
syslog.conf and drop !* to stop any 
further processing of relayd related messages.     On Friday, January 16, 2026 
at 03:52:28 AM GMT+9, Michael Graves <[email protected]> wrote:  
 
 That almost solves the problem. If a message comes in and matches the !prog it 
will log, but if it also matches another line in the syslog.conf file, it will 
log to that destination too. That is not a huge deal, but can cause duplicate 
messages.
Thanks for the confirmation. 


Sent from my Galaxy

-------- Original message --------From: [email protected] Date: 1/14/26 7:54 PM 
(GMT-06:00) To: Simen Stavdal <[email protected]>, Michael Graves 
<[email protected]> Cc: [email protected] Subject: Re: Problem using syslog 
!!prog syntax 
 as per man page !!prog seems to be using,"either OR" logic and !prog "AND"

So I think you need !prog not !!prog

Both will stop evaluation of any subsequent blocks. So we do need to add !* 
after !prog also.

!relayd
*.* /var/log/relayd
*.* tls4://logginghost:8513
!*     On Tuesday, January 13, 2026 at 11:45:31 PM GMT+9, All <[email protected]> 
wrote:  
 
 I agree, perhaps the wording could be more precise. Although, one can argue 
that specifying *several selectors* 
in order to log this and not that can be considered a "set" of actions.
Not sure if you really want !!prog for your use case.

!prog should suffice, as in:

!relayd
*.*     /var/log/relayd
*.*     tls4://logginghost:8513






On Tuesday, January 13, 2026 at 10:43:03 PM GMT+9, Michael Graves 
<[email protected]> wrote: 





Thanks for the response.  When we consider the non-!!prog use case, having 
multiple *.* matches isn't a problem.  It is only within the !!prog block that 
there is 1 match then done.  Reading the man page:

                !!prog causes the subsequent block to abort evaluation when a 
message
                matches, ensuring that only a single **set of actions** is 
taken.
                (emphasis mine)

The way I read this is, that any and all actions within the block will be 
evaluated and taken upon a match.  Perhaps that is not what was indended and/or 
I my reading of the man page is wrong.

Assuming I am not wrong in my interpertation of the intent, I have submitted 
this(https://marc.info/?l=openbsd-bugs&m=176807926301784&w=2) bug report with a 
possible fix.  

Cheers

Sent from my Galaxy


-------- Original message --------
From: [email protected] 
Date: 1/12/26 10:29 PM (GMT-06:00) 
To: Michael Graves <[email protected]>, Simen Stavdal <[email protected]> 
Cc: [email protected] 
Subject: Re: Problem using syslog !!prog syntax 

!!prog causes subsequent block to abort evaluation when a message matches.

*.* means match everything. You have two of those statements. But first one 
will always match. Next one should not be evaluated as per !!prog logic then.
I think you proved that this is the case when you changed order of your 
statements.Right?




On Saturday, January 10, 2026 at 06:48:26 PM GMT+9, Simen Stavdal 
<[email protected]> wrote: 





Hi Michael,

>From what I can see in the man pages, it should log to both.
Example from the man page :

# Everybody gets emergency messages, plus log them on another
# machine.
*.emerg *
*.emerg @arpa.berkeley.edu

This, however, is outside the !! (per daemon logs).
As a test, would it work if you set up logging to two destinations "globally", 
i.e outside the logging rules for the particular daemon?

/s


On Sun, 4 Jan 2026 at 00:14, Michael Graves <[email protected]> wrote:
> I am trying to use the syslog !!prog syntax and am running into 
> problems, before I go to far down the rabbit hole of trying to identify 
> a bug, I would like to make sure that my expectations are sane.  I am 
> try to use syslog.conf with the following syntax
> 
>     !!relayd
>     *.*     /var/log/relayd
>     *.*     tls4://logginghost:8513
>     !*
>     <rest of standard syslog.conf>
> 
> When relayd generates a log it only is written to the /var/log/relayd 
> file.  If I switch the order, then the log will only be written to 
> loginghost.
> 
> My expectation would be that both destinations would have the log 
> written.  Am I misunderstanding the man page?
> 
> Thanks for any insight or corrections.
> 


    

Reply via email to