Uma coisa importante que aprendi na convivencia com os melhores sysadmins de Linux que já trabalhei (esse e esse, por exemplo) é que lugar de log é no Syslog — e se você não está fazendo isso, hummm, há uma boa chance de you’re doing it wrong my friend.
…and in The .NET World
A melhor prática para aqueles que trabalham com .NET é escrever log com o Event Log. Os melhores sysadmins de Windows que conheço estão sempre ligados (Nagios? Zabbix?) no Event Viewer.
Então, apesar deste post se destinar a Ruby/POSIX, fica a dica do Renato Lucindo — no final desse post — para a galera de .NET/Windows também.
Bem, como a biblioteca padrão do Ruby para escrever no Syslog não é lá muito amigável, resolvi facilitar um pouco as coisas e criei a gem slogger.
Dois exemplos rápidos
Antes de mais nada, installe a gem:
$ gem install slogger
Log simples:
slogger = Slogger::Logger.new "sample_app", :debug, :local0
slogger.info "A good info"
slogger.debug "A deep info"
Log com tempo de execução:
slogger = Slogger::Logger.new "sample_app", :debug, :local0
slogger.info "A really good info preceded by spent time" do
# do something
end
Depois, claro, dê uma olhada no seu Syslog, para ver as mensagens “logadas”.
A lambuja
Se você estiver usando Sinatra, por exemplo, pode usar o middleware Slogger::Rack::RequestLogger em vez do famoso Rack::CommonLogger, que usa Logger (não que o Logger seja ruim).
configure do
slogger = Slogger::Logger.new "sample_app", :debug, :local0
use Slogger::Rack::RequestLogger, slogger
end
E a dica final
Ecoando a dica do Renato Lucindo: não seja ingênuo, log everything!!!
Tá esperando o que para começar a fazer a coisa direito?