On not seeing some expected log messages, I wrote this test program 'log.c':

   #include <stdlib.h>
   #include <syslog.h>

   int
   main (int argc, char **argv)
   {
      openlog("logtest", 0, 0);
      syslog(LOG_MAKEPRI(LOG_USER, LOG_INFO),
             "hello1: via LOG_MAKPRI.\n");
      syslog(LOG_INFO | LOG_USER, "hello2: via bitwise-or.\n");
      syslog(LOG_INFO, "hello3: via level only.\n");
      closelog();
      return EXIT_SUCCESS;
   }

and compiled it with 'gcc -o log log.c'.  On Debian 'Squeeze' all
three messages appear in the log.  On OpenBSD 4.7 only the last two
appear in the log.

So it looks like LOG_MAKEPRI and syslogd are not on speaking terms.
LOG_MAKEPRI is not documented in syslog(3) but is present in syslog.h.

LOG_MAKEPRI doesn't appear in
<http://www.opengroup.org/onlinepubs/9699919799/>.
Does LOG_MAKEPRI have any status in terms of standards?

Would it be better for it to be removed or redefined to issue a
preprocessor error?
-- 
Nick

Reply via email to