Ruby on Rails
Rails logger
Sök…
Rails.logger
Använd alltid Rails.logger.{debug|info|warn|error|fatal}
snarare än puts
. Detta gör att dina loggar kan passa in i standardloggformatet, ha en tidsstämpel och ha en nivå så att du väljer om de är tillräckligt viktiga för att visas i en viss miljö. Du kan se de separata loggfilerna för din applikation under log/
katalog med ditt rails appmiljönamn. som: development.log
eller production.log
eller staging.log
Du kan enkelt rotera rails produktionsloggar med LogRotate. Du måste bara göra en liten konfiguration som nedan
Öppna /etc/logrotate.conf
med din favorit Linux redaktör vim
eller nano
och lägg till koden nedan i den här filen längst ner.
/YOUR/RAILSAPP/PATH/log/*.log {
daily
missingok
rotate 7
compress
delaycompress
notifempty
copytruncate
}
Så hur det fungerar Det här är fantastiskt enkelt. Varje bit av konfigurationen gör följande:
- dagligen - Rotera loggfilerna varje dag. Du kan också använda varje vecka eller månad här i stället.
- missingok - Om loggfilen inte finns, ignorera den
- rotera 7 - Håll bara 7 dagars stockar runt
- komprimera - GZip loggfilen vid rotation
- delaycompress - Rotera filen en dag, komprimera den sedan nästa dag så att vi kan vara säkra på att den inte kommer att störa Rails-servern
- notifempty - Rotera inte filen om loggarna är tomma
- copytruncate - Kopiera loggfilen och tömmer den sedan. Detta säkerställer att loggfilen Rails skriver till alltid finns så att du inte får problem eftersom filen faktiskt inte ändras. Om du inte använder detta, måste du starta om din Rails-applikation varje gång.
Köra Logrotate Eftersom vi just skrev den här konfigurationen vill du testa den.
För att köra logrotate manuellt, gör bara: sudo /usr/sbin/logrotate -f /etc/logrotate.conf
Det är allt.