>The RemotingAppender tries to flush all message in shutdown but if
>things go really bad you may be losing some messages, this is true.

There can't be any guarantee anyway that all log messages are written before
the application goes down. There are circumstances where the operating
system takes over and terminates the application.

A popular phenomenon is an application that segmentation faults or when the
framework cannot find a shared library when it wants to load it.

In these cases the operating system takes over and terminates the
application and all loaded assemblies/resources with it without even
considering to shutdown the application gracefully. It may well the case
that the logging facility is fast enough to persist some events, but I would
not rely on it. The best things a developer may do is:

1) Application.Current.DispatcherUnhandledException += (object sender,
UnhandledExceptionEventArgs e) => { MessageBox.Show("ouch"); }
2) AppDomain.CurrentDomain.UnhandledException += (object sender,
DispatcherUnhandledExceptionEventArgs e) { MessageBox.Show("ouch"); }

And hope that the user needs some time to click "ok". :-)

Reply via email to