1
0
mirror of https://github.com/postgres/postgres.git synced 2025-07-28 23:42:10 +03:00

Support configurable eventlog application names on Windows

This allows different instances to use the eventlog with different
identifiers, by setting the event_source GUC, similar to how
syslog_ident works.

Original patch by MauMau, heavily modified by Magnus Hagander
This commit is contained in:
Magnus Hagander
2011-10-25 20:02:55 +02:00
parent 90d8e8ff7e
commit d8ea33f2c0
8 changed files with 143 additions and 19 deletions

View File

@ -3037,6 +3037,14 @@ local0.* /var/log/postgresql
to the <application>syslog</application> daemon's configuration file
to make it work.
</para>
<para>
On Windows, when you use the <literal>eventlog</literal>
option for <varname>log_destination</>, you should
register an event source and its library with the operating
system so that the Windows Event Viewer can display event
log messages cleanly.
See <xref linkend="event-log-registration"> for details.
</para>
</note>
</listitem>
</varlistentry>
@ -3287,6 +3295,23 @@ local0.* /var/log/postgresql
</listitem>
</varlistentry>
<varlistentry id="guc-event-source" xreflabel="event_source">
<term><varname>event_source</varname> (<type>string</type>)</term>
<indexterm>
<primary><varname>event_source</> configuration parameter</primary>
</indexterm>
<listitem>
<para>
When logging to <application>event log</> is enabled, this parameter
determines the program name used to identify
<productname>PostgreSQL</productname> messages in
the log. The default is <literal>PostgreSQL</literal>.
This parameter can only be set in the <filename>postgresql.conf</>
file or on the server command line.
</para>
</listitem>
</varlistentry>
</variablelist>
</sect2>
<sect2 id="runtime-config-logging-when">

View File

@ -1551,19 +1551,6 @@ PostgreSQL, contrib and HTML documentation successfully made. Ready to install.
</step>
</procedure>
<formalpara>
<title>Registering <application>eventlog</> on <systemitem
class="osname">Windows</>:</title>
<para>
To register a <systemitem class="osname">Windows</> <application>eventlog</>
library with the operating system, issue this command after installation:
<screen>
<userinput>regsvr32 <replaceable>pgsql_library_directory</>/pgevent.dll</>
</screen>
This creates registry entries used by the event viewer.
</para>
</formalpara>
<formalpara>
<title>Uninstallation:</title>
<para>

View File

@ -2295,4 +2295,50 @@ ssh -L 63333:db.foo.com:5432 joe@shell.foo.com
</sect1>
<sect1 id="event-log-registration">
<title>Registering <application>Event Log</> on <systemitem
class="osname">Windows</></title>
<indexterm zone="event-log-registration">
<primary>event log</primary>
<secondary>event log</secondary>
</indexterm>
<para>
To register a <systemitem class="osname">Windows</>
<application>event log</> library with the operating system,
issue this command:
<screen>
<userinput>regsvr32 <replaceable>pgsql_library_directory</>/pgevent.dll</>
</screen>
This creates registry entries used by the event viewer, under the default
event source named <literal>PostgreSQL</literal>.
</para>
<para>
To specify a different event source name (see
<xref linkend="guc-event-source">), use the <literal>/n</literal>
and <literal>/i</literal> options:
<screen>
<userinput>regsvr32 /n /i:<replaceable>event_source_name</> <replaceable>pgsql_library_directory</>/pgevent.dll</>
</screen>
</para>
<para>
To unregister the <application>event log</> library from
the operating system, issue this command:
<screen>
<userinput>regsvr32 /u [/i:<replaceable>event_source_name</>] <replaceable>pgsql_library_directory</>/pgevent.dll</>
</screen>
</para>
<note>
<para>
To enable event logging in the database server, modify
<xref linkend="guc-log-destination"> to include
<literal>eventlog</literal> in <filename>postgresql.conf</filename>.
</para>
</note>
</sect1>
</chapter>