Here is a cleaned up patch, without the elog() and fprintf(), and some
minor formatting fixups. 


Index: doc/src/sgml/runtime.sgml
===================================================================
RCS file: /home/projects/pgsql/cvsroot/pgsql/doc/src/sgml/runtime.sgml,v
retrieving revision 1.33
diff -c -r1.33 runtime.sgml
*** doc/src/sgml/runtime.sgml   2000/11/10 16:32:09     1.33
--- doc/src/sgml/runtime.sgml   2000/11/12 23:02:17
***************
*** 822,827 ****
--- 822,839 ----
       </varlistentry>
  
       <varlistentry>
+       <term>SYSLOG_FACILITY (<type>string</type>)</term>
+        <listitem>
+         <para>
+           If the SYSLOG option is set to 1 or greater, this option determines
+           the <application>syslog</application> facility used.  You may choose
+           from LOCAL0, LOCAL1, LOCAL2, LOCAL3, LOCAL4, LOCAL5, LOCAL6, LOCAL7.
+           the default is LOCAL0
+         </para>
+        </listitem>
+      </varlistentry>
+ 
+      <varlistentry>
        <term>TRACE_NOTIFY (<type>boolean</type>)</term>
        <listitem>
         <para>
Index: src/backend/utils/error/elog.c
===================================================================
RCS file: /home/projects/pgsql/cvsroot/pgsql/src/backend/utils/error/elog.c,v
retrieving revision 1.65
diff -c -r1.65 elog.c
*** src/backend/utils/error/elog.c      2000/10/30 06:48:36     1.65
--- src/backend/utils/error/elog.c      2000/11/12 23:02:20
***************
*** 58,63 ****
--- 58,64 ----
   * ... in theory anyway
   */
  int Use_syslog = 0;
+ char *Syslog_facility = "LOCAL0";
  
  static void write_syslog(int level, const char *line);
  
***************
*** 620,625 ****
--- 621,627 ----
  
        static bool     openlog_done = false;
        static unsigned long seq = 0;
+       static int      syslog_fac = LOG_LOCAL0;
        int len = strlen(line);
  
        if (Use_syslog == 0)
***************
*** 627,633 ****
  
        if (!openlog_done)
        {
!               openlog("postgres", LOG_PID | LOG_NDELAY, LOG_LOCAL0);
                openlog_done = true;
        }
  
--- 629,651 ----
  
        if (!openlog_done)
        {
!               if (strcasecmp(Syslog_facility,"LOCAL0") == 0) 
!                       syslog_fac = LOG_LOCAL0;
!               if (strcasecmp(Syslog_facility,"LOCAL1") == 0)
!                       syslog_fac = LOG_LOCAL1;
!               if (strcasecmp(Syslog_facility,"LOCAL2") == 0)
!                       syslog_fac = LOG_LOCAL2;
!               if (strcasecmp(Syslog_facility,"LOCAL3") == 0)
!                       syslog_fac = LOG_LOCAL3;
!               if (strcasecmp(Syslog_facility,"LOCAL4") == 0)
!                       syslog_fac = LOG_LOCAL4;
!               if (strcasecmp(Syslog_facility,"LOCAL5") == 0)
!                       syslog_fac = LOG_LOCAL5;
!               if (strcasecmp(Syslog_facility,"LOCAL6") == 0)
!                       syslog_fac = LOG_LOCAL6;
!               if (strcasecmp(Syslog_facility,"LOCAL7") == 0)
!                       syslog_fac = LOG_LOCAL7;
!               openlog("postgres", LOG_PID | LOG_NDELAY, syslog_fac);
                openlog_done = true;
        }
  
Index: src/backend/utils/misc/guc.c
===================================================================
RCS file: /home/projects/pgsql/cvsroot/pgsql/src/backend/utils/misc/guc.c,v
retrieving revision 1.16
diff -c -r1.16 guc.c
*** src/backend/utils/misc/guc.c        2000/11/09 11:25:59     1.16
--- src/backend/utils/misc/guc.c        2000/11/12 23:02:22
***************
*** 39,44 ****
--- 39,48 ----
  extern int CheckPointTimeout;
  extern int XLOGbuffers;
  extern int XLOG_DEBUG;
+ #ifdef ENABLE_SYSLOG
+ extern char *Syslog_facility;
+        bool check_facility(const char *facility);
+ #endif
  
  /*
   * Debugging options
***************
*** 303,308 ****
--- 307,316 ----
  
        {"unix_socket_group",         PGC_POSTMASTER,       &Unix_socket_group,
         "", NULL},
+ #ifdef ENABLE_SYSLOG
+       {"syslog_facility",           PGC_SIGHUP,           &Syslog_facility, 
+       "LOCAL0", check_facility},       
+ #endif
  
        {NULL, 0, NULL, NULL, NULL}
  };
***************
*** 807,809 ****
--- 815,832 ----
                if (*cp == '-')
                        *cp = '_';
  }
+ #ifdef ENABLE_SYSLOG
+ bool 
+ check_facility(const char *facility)
+ {
+       if (strcasecmp(facility,"LOCAL0") == 0) return true;
+       if (strcasecmp(facility,"LOCAL1") == 0) return true;
+       if (strcasecmp(facility,"LOCAL2") == 0) return true;
+       if (strcasecmp(facility,"LOCAL3") == 0) return true;
+       if (strcasecmp(facility,"LOCAL4") == 0) return true;
+       if (strcasecmp(facility,"LOCAL5") == 0) return true;
+       if (strcasecmp(facility,"LOCAL6") == 0) return true;
+       if (strcasecmp(facility,"LOCAL7") == 0) return true;
+       return false;
+ }
+ #endif
-- 
Larry Rosenman                      http://www.lerctr.org/~ler
Phone: +1 972-414-9812 (voice) Internet: [EMAIL PROTECTED]
US Mail: 1905 Steamboat Springs Drive, Garland, TX 75044-6749

Reply via email to