Para o projecto em que estou envolvido desde Janeiro, desde cedo fiz questão que fossem usados muitos processos relacionados com o desenvolvimento para, no final, facilitar o processo de manutenção.

No top 3 destes processos estão, sem qualquer sombra de dúvida:

  • Uso de source control (SVN)
  • Integração contínua
  • Log4net

Desde que usei o log4net na Inosat que acho que é uma ferramenta indispensável para a grande maioria* dos programadores. Desde que a aplicação foi instalada nos servidores que, invariavelmente, todos os problemas podem ser identificados usando os logs para verificar o que se passou.

Do site:

log4net is a tool to help the programmer output log statements to a variety of output targets. In case of problems with an application, it is helpful to enable logging so that the problem can be located. With log4net it is possible to enable logging at runtime without modifying the application binary.

Para além de ter o log básico para ficheiro, pode ser usado para fazer log para qualquer outro output imaginável, bastando para isso alterar o ficheiro de configuração da aplicação/serviço/website. Pode-se, por exemplo, mandar todos os logs de determinado nível – ex Error – por email, UDP, Event Viewer, etc.

EDMS Event log

No caso do projecto em que estou envolvido a BT pediu que o log fosse colocado no Event Viewer do windows para que eles pudessem monitorizar de forma automatizada. Um pedido destes, numa altura em que nos estávamos a preparar para iniciar a fase de testes pré-live, seria algo que nos obrigaria a mudar bastante o código para acomodar o novo tipo de logs. Felizmente, usando o log4net, bastou mudar o ficheiro de configuração**.

 

*Digo a grande maioria pois não quero generalizar mas… vá lá, 99,99%

**Bastou.. quer dizer… No principio não funcionou pois websites e services não têm permissão para criar Queues no ‘Event Viewer’. Para este problema, basta inicializar a Queue numa ‘custom action’ do instalador do site/serviço. A partir daí, visto que para escrever para o ‘Event Viewer’ não são precisas permissões especiais, tudo funcionou até nos servidores super-restritos da BT.