Re: Syslog Facility Patch - Mailing list pgsql-hackers
From | Bruce Momjian |
---|---|
Subject | Re: Syslog Facility Patch |
Date | |
Msg-id | 200011132134.QAA07942@candle.pha.pa.us Whole thread Raw |
In response to | Re: Syslog Facility Patch (Larry Rosenman <ler@lerctr.org>) |
Responses |
Re: Syslog Facility Patch
Re: Syslog Facility Patch |
List | pgsql-hackers |
Applied. > 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 > -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 853-3000+ If your life is a hard drive, | 830 Blythe Avenue + Christ can be your backup. | Drexel Hill, Pennsylvania19026
pgsql-hackers by date: