Below is some of my error logging code. When an exception happens inside my app, I log it to a database. If that database is down or when there’s some other problem, I try to log it in an event viewer.
What happens if that event viewer write fails for some reason, too? How do I give up or swallow this new exception?
void SaveLog(string accountId, Exception ex, Category category, Priority priority)
{
try
{
using (var connection = new SqlConnection(…))
{
connection.Open();
command.ExecuteNonQuery();
}
}
catch (Exception exception)
{
// exception while logging!
using (var eventLog = new EventLog { Source = "tis" })
{
eventLog.WriteEntry(
exception.Message + Environment.NewLine +
exception.StackTrace,
EventLogEntryType.Error);
}
}
}
1 Answer