How to rotate the Laravel logs

Laravel stores the logs of the project in the file «storage/logs/laravel.log». If you don’t rotate this file can increase its size a lot, using the most part of the storage, causing problems with a full disk.

To avoid these problems you can add this project to the logrotate of your server. You have to add a new file in the «/etc/logrotate.d/» folder:

$ sudo touch /etc/logrotate.d/my-proyect

Then you have to add the config in this file:

/var/my-project/storage/logs/laravel.log {
    weekly
    missingok
    rotate 12
    compress
    notifempty
    su my-user my-group
    create 700 my-user my-group
}

Now I explain the parameters:

  • /var/my-project/storage/logs/laravel.log is the file you want to rotate.
  • weekly will rotate the file each week.
  • missingok will ignore the file if it is missing.
  • rotate 12 keep the logs of the last 12 weeks.
  • notifempty does not rotate the log if it is empty.
  • compress will compress the rotated old log files.
  • su my-user my-group will rotate log files set under this user and group instead of using default user/group (usually root).
  • create 700 my-user my-group will create a new log file with the following permissions.

To check this config file you can execute the next command (in debug mode):

$ logrotate -d /etc/logrotate.d/my-proyect

You can find more information with the man command:

$ man logrotate

and in those links:

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.