Rabu, 31 Agustus 2016

Rotating Rails Logs

Log adalah berkas (file) yang dibuat oleh server untuk merekam seluruh informasi dari order-order atau permintaan yang dikirimkan oleh klien kepada server dengan waktu yang tepat beserta hasil pemrosesannya. Log akan merekam terus semua kegiatan request ke server ke dalam sebuah file dan file itu ukuranya akan semakin membesar tujuan rotating production log adalah untuk mengatur size dan file log

 Langkah untuk melakukan log rotate
  1. Masuk ke production server terlebih dahulu 
  2. Periksa list log pada folder aplikasi untuk rails biasanya berada pada folder log
  3. Buka file /etc/logrotate.conf mengunakan vim atau nano
  4. Tambahkan path aplikasi kita dan value info untuk log 
  5. /home/deploy/APPNAME/current/log/*.log {
      daily
      missingok
      rotate 7
      compress
      delaycompress
      notifempty
      copytruncate
    }
  6. Berikut penjelasan untuk nama value
     - daily – Rotate the log files each day. You can also use weekly or monthly here instead  
     - missingok – If the log file doesn’t exist, ignore it  
     - rotate 7 – Only keep 7 days of logs around  
     - compress – GZip the log file on rotation  
     - delaycompress – Rotate the file one day, then compress it the next day so we can be sure that it won’t interfere with the Rails server  
     - notifempty – Don’t rotate the file if the logs are empty  
     - copytruncate – Copy the log file and then empties it. This makes sure that the log file Rails is writing to always exists so you won’t get problems because the file does not actually change. If you don’t use this, you would need to restart your Rails application each time.  
    
  7. Setelah selesai simpan perubahan 
  8. Kemudian untuk melakukan check manual run code berikut
  9. sudo /usr/sbin/logrotate -f /etc/logrotate.conf
  10. Periksa file pada folder log aplikasi bila berhasil akan ada file seperti berikut 
  11. Logrotate Rails 3 Production Log
  12. Selanjutnya kita tinggal mengatur jadwal untuk melakukan deleted log . kita bisa menggunakan gem whenever documentasi disini