提交 d63a762f 编写于 作者: B Bruce Momjian

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..

Larry Rosenman
上级 b557be50
<!--
$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">
......@@ -821,6 +821,30 @@ env PGOPTIONS='-c geqo=off' psql
</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>
......
......@@ -8,7 +8,7 @@
*
*
* 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 $
*
*-------------------------------------------------------------------------
*/
......@@ -58,6 +58,8 @@ extern CommandDest whereToSendOutput;
* ... 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,6 +622,7 @@ 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)
......@@ -627,7 +630,23 @@ write_syslog(int level, const char *line)
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;
}
......
......@@ -4,7 +4,7 @@
* 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>.
......@@ -39,6 +39,11 @@ extern bool Log_connections;
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,6 +308,12 @@ ConfigureNamesString[] =
{"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},
......@@ -813,3 +824,18 @@ ParseLongOption(const char * string, char ** name, char ** value)
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
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册