I chose to have an error logging system after I decided to have scripts dump tables into files. The two go hand-in-hand because (unlike the errors I’ve dealt with so far) a failure to dump a table which has changed is not a reason to abort a script.
- Errors don’t have to stop a script — can be dealt with later.
- I’ll know about errors which others run into.
- I can silently report errors without notifying the user.
- I can log things other than errors. Examples: performance, significant user actions.