Re: Syslog Facility Patch

Поиск
Список
Период
Сортировка
От Larry Rosenman
Тема Re: Syslog Facility Patch
Дата
Msg-id 20001112191854.A15709@lerami.lerctr.org
обсуждение исходный текст
Ответ на Re: Syslog Facility Patch  (Larry Rosenman <ler@lerctr.org>)
Ответы Re: Syslog Facility Patch
Re: Syslog Facility Patch
Re: Syslog Facility Patch
Список pgsql-hackers
Ok, You guys are probably tired of me, BUT, here is another one, that
adds the facility to set the program name used in syslog. 
(this includes the other ones). 

One gotcha, the parser doesn't like special characters in strings.
For example, i tried to use pg-test, and if failed the parse coming
from the postgresql.conf file.  

I don't think it's a showstopper..

Comments?



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/13 01:15:34
***************
*** 822,827 ****
--- 822,851 ----      </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>SYSLOG_PROGID (<type>string</type>)</term>
+        <listitem>
+         <para>
+          If the SYSLOG option is set to 1 or greater, this option determines
+          the program id used to identify <product>PostgreSQL</product> messages
+          in <application>syslog</application> log messages.  The default is
+          postgres.
+         </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/13 01:15:37
***************
*** 58,63 ****
--- 58,65 ----  * ... in theory anyway  */ int Use_syslog = 0;
+ char *Syslog_facility = "LOCAL0";
+ char *Syslog_progid = "postgres";  static void write_syslog(int level, const char *line); 
***************
*** 620,625 ****
--- 622,628 ----      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;     } 
--- 630,652 ----      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(Syslog_progid, 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/13 01:15:38
***************
*** 39,44 ****
--- 39,49 ---- extern int CheckPointTimeout; extern int XLOGbuffers; extern int XLOG_DEBUG;
+ #ifdef ENABLE_SYSLOG
+ extern char *Syslog_facility;
+ extern char *Syslog_progid;
+        bool check_facility(const char *facility);
+ #endif  /*  * Debugging options
***************
*** 303,308 ****
--- 308,319 ----      {"unix_socket_group",         PGC_POSTMASTER,       &Unix_socket_group,      "", NULL},
+ #ifdef ENABLE_SYSLOG
+     {"syslog_facility",           PGC_SIGHUP,        &Syslog_facility, 
+     "LOCAL0", check_facility},     
+     {"syslog_progid",             PGC_SIGHUP,        &Syslog_progid, 
+     "postgres", NULL},     
+ #endif      {NULL, 0, NULL, NULL, NULL} };
***************
*** 807,809 ****
--- 818,835 ----         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: ler@lerctr.org
US Mail: 1905 Steamboat Springs Drive, Garland, TX 75044-6749


В списке pgsql-hackers по дате отправления:

Предыдущее
От: Tatsuo Ishii
Дата:
Сообщение: Re: can't insert "³\" as varchar in 7.0.2 and 7.1
Следующее
От: "Mitch Vincent"
Дата:
Сообщение: Re: 7.0.2 -> 7.0.3 problem - anyone?