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..
Larry Rosenman
<!--
-$Header: /cvsroot/pgsql/doc/src/sgml/runtime.sgml,v 1.33 2000/11/10 16:32:09 tgl Exp $
+$Header: /cvsroot/pgsql/doc/src/sgml/runtime.sgml,v 1.34 2000/11/13 21:35:02 momjian Exp $
-->
<Chapter Id="runtime">
</listitem>
</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>
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/error/elog.c,v 1.65 2000/10/30 06:48:36 ishii Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/error/elog.c,v 1.66 2000/11/13 21:35:02 momjian Exp $
*
*-------------------------------------------------------------------------
*/
* ... in theory anyway
*/
int Use_syslog = 0;
+char *Syslog_facility = "LOCAL0";
+char *Syslog_progid = "postgres";
static void write_syslog(int level, const char *line);
static bool openlog_done = false;
static unsigned long seq = 0;
+ static int syslog_fac = LOG_LOCAL0;
int len = strlen(line);
if (Use_syslog == 0)
if (!openlog_done)
{
- openlog("postgres", LOG_PID | LOG_NDELAY, LOG_LOCAL0);
+ 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;
}
* Support for grand unified configuration scheme, including SET
* command, configuration file, and command line options.
*
- * $Header: /cvsroot/pgsql/src/backend/utils/misc/guc.c,v 1.17 2000/11/13 15:18:12 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/misc/guc.c,v 1.18 2000/11/13 21:35:03 momjian Exp $
*
* Copyright 2000 by PostgreSQL Global Development Group
* Written by Peter Eisentraut <peter_e@gmx.net>.
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
{"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
{"unixsocket", PGC_POSTMASTER, &UnixSocketName,
"", NULL},
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