Introdução
Se ocorrer um erro em um site ou sistema, é claro que é útil registrá-lo e mostrar ao usuário uma mensagem educada com um código de referência para o erro.
E se você possui muitos sistemas, não deseja que essas informações sejam distribuídas - é bom ter um único local centralizado para elas.
No nível mais simples, tudo o que é necessário é um ID de incremento e um despejo serializado dos detalhes do erro. (E, possivelmente, o "local centralizado" é uma caixa de entrada de e-mail.)
No outro extremo do espectro, talvez haja um banco de dados totalmente normalizado que também permita que você pressione um botão e veja um gráfico de erros por dia ou identifique qual é o tipo de erro mais comum no sistema X, se o servidor A possui mais banco de dados. erros de conexão que o servidor B e assim por diante.
O que estou me referindo aqui é registrar erros / exceções no nível do código por um sistema remoto - não o rastreamento de problemas "baseado em humanos", como feito com Jira, Trac, etc.
Questões
Estou procurando pensamentos de desenvolvedores que usaram esse tipo de sistema, especificamente com relação a:
- Quais são os recursos essenciais que você não pode prescindir?
- O que é bom ter recursos que realmente economizam seu tempo?
- Quais recursos podem parecer uma boa ideia, mas não são realmente úteis?
Por exemplo, eu diria que uma função "show duplicates" que identifica a ocorrência múltipla de um erro (sem se preocupar com detalhes 'sem importância' que possam diferir) é bastante essencial.
Um botão para "criar um problema no [Jira / etc] para esse erro" parece uma boa economia de tempo.
Apenas para reiterar, o que estou procurando são experiências práticas de pessoas que usaram esses sistemas, de preferência com o motivo pelo qual um recurso é incrível / terrível.
(Se você for teorizar de qualquer maneira, marque no mínimo sua resposta como tal.)