Thread: Win32 Event log

Win32 Event log

From
"Dave Page"
Date:
Under Win32 it is normal for serious errors to be recorded to the
systems event log as well as any log that the application may also be
writing (SQL Server is a good example of an app that does this).

The attached patch directs FATAL and PANIC elog's to the event log as
well as their normal destination. If the normal destination is the event
log, then they are not duplicated. This allows serious errors to be
picked up quickly and easily without swamping the event log (which
generally has limited size) with other events.

Please apply for beta 2...

Cheers, Dave.

Attachment

Re: Win32 Event log

From
Tom Lane
Date:
"Dave Page" <dpage@vale-housing.co.uk> writes:
> The attached patch directs FATAL and PANIC elog's to the event log as
> well as their normal destination.

I don't think this is a good idea.  In the first place, FATAL errors are
not necessarily serious or out-of-the-ordinary --- an example is that
all authorization errors are FATAL.  In the second place, the proposed
patch deliberately subverts what the DBA has set as the logging output
parameters.  I dislike software that knows better than I do what I want
and is willing to ignore what I told it to do on those grounds.  In the
third place, no one is going to have any difficulty picking out PANICs
from "other events" ;-)

A patch that would be more in the spirit of Postgres is to allow different
min_log_level values for the different possible log destinations
(stderr, syslog, eventlog).  However that looks a lot like a new feature
to me, so maybe it will have to wait for 8.1.

            regards, tom lane

Re: Win32 Event log

From
"Dave Page"
Date:

> -----Original Message-----
> From: Tom Lane [mailto:tgl@sss.pgh.pa.us]
> Sent: 12 August 2004 15:40
> To: Dave Page
> Cc: PostgreSQL Patches
> Subject: Re: [PATCHES] Win32 Event log
>
> "Dave Page" <dpage@vale-housing.co.uk> writes:
> > The attached patch directs FATAL and PANIC elog's to the
> event log as
> > well as their normal destination.
>
> I don't think this is a good idea.  In the first place, FATAL
> errors are not necessarily serious or out-of-the-ordinary ---
> an example is that all authorization errors are FATAL.

OK, I could live with just panics.

> In
> the second place, the proposed patch deliberately subverts
> what the DBA has set as the logging output parameters.  I
> dislike software that knows better than I do what I want and
> is willing to ignore what I told it to do on those grounds.

Logging like this is fairly normal on Windows. Applications may maintain
their own (often verbose) logfiles, however more serious errors get
directed to the event log as well. This allows automated monitoring of
servers to be achieved for example.

> In the third place, no one is going to have any difficulty
> picking out PANICs from "other events" ;-)

Finding them is not so much the problem - it's the fact that the event
log on Windows has a limited size (default 1024Kb on XP) and will
overwrite old events as required. The sort of output you might see from
a busy PostgreSQL server could potentially wipe out relatively new
entries made by other apps.

One possible solution would be to use our own event log which is
possible in 2K+, (but not NT).

> A patch that would be more in the spirit of Postgres is to
> allow different min_log_level values for the different
> possible log destinations (stderr, syslog, eventlog).
> However that looks a lot like a new feature to me, so maybe
> it will have to wait for 8.1.

Yes, that would work, though as you say it's a new feature.

Regards, Dave.

Re: Win32 Event log

From
Andreas Pflug
Date:
Dave Page wrote:

>>
>>"Dave Page" <dpage@vale-housing.co.uk> writes:
>>
>>>The attached patch directs FATAL and PANIC elog's to the
>>
>>event log as
>>
>>>well as their normal destination.
>>
>>I don't think this is a good idea.  In the first place, FATAL
>>errors are not necessarily serious or out-of-the-ordinary ---
>>an example is that all authorization errors are FATAL.
>
>
> OK, I could live with just panics.

Logging auth failures will be interesting for admins too. This could
indicate an ongoing attack. I would keep FATAL.

>>In
>>the second place, the proposed patch deliberately subverts
>>what the DBA has set as the logging output parameters.  I
>>dislike software that knows better than I do what I want and
>>is willing to ignore what I told it to do on those grounds.
>
>
> Logging like this is fairly normal on Windows. Applications may maintain
> their own (often verbose) logfiles, however more serious errors get
> directed to the event log as well. This allows automated monitoring of
> servers to be achieved for example.

It must be stressed that win32 eventlog behaves very different from
linux syslog. And what the DBA wants to know, is not necessarily what
the sys admin (domain admin) wants to know. Frankly, i doubt that plain
eventlog logging will be used widely in the presence of redirect_stderr
(and tools to read them); the behaviour is too non-windowish.


>
> One possible solution would be to use our own event log which is
> possible in 2K+, (but not NT).

This is very uncommon, even for MS software. AFAICS only system software
(intrinsic to win32) does so. I wonder how many eventlog monitoring
programs already know about that possibility...


>>A patch that would be more in the spirit of Postgres is to
>>allow different min_log_level values for the different
>>possible log destinations (stderr, syslog, eventlog).
>>However that looks a lot like a new feature to me, so maybe
>>it will have to wait for 8.1.
>
>
> Yes, that would work, though as you say it's a new feature.

No doubt, the best solution.

Regards,
Andreas