We have a Java-application, that uses log4j and rotates its own logs daily:
- The currently-used log-file is
/var/log/foo/foo.log
- It is moved into
/var/log/foo/foo.log.YYYY-MM-dd
when the day changes
We'd rather not change its configuration...
However, we do want to:
- Compress the file once it has been renamed
- Only retain a certain number of them
Though it wouldn't be difficult to write a cron-job to do both, we'd rather stay in the framework of logrotate
...
I create the following /etc/logrotate.d/foo
:
/var/log/foo/foo.log.* {
daily
rotate 2
compress
delaycompress
missingok
notifempty
}
but it does not do anything:
reading config file /etc/logrotate.d/foo
Handling 1 logs
rotating pattern: /var/log/foo/foo.log.* after 1 days (2 rotations)
empty log files are not rotated, old logs are removed
considering log /var/log/foo/foo.log.2017-06-28
log does not need rotating
considering log /var/log/foo/foo.log.2017-06-29
log does not need rotating
considering log /var/log/foo/foo.log.2017-06-30
log does not need rotating
considering log /var/log/foo/foo.log.2017-07-01
log does not need rotating
considering log /var/log/foo/foo.log.2017-07-02
log does not need rotating
considering log /var/log/foo/foo.log.2017-07-03
log does not need rotating
considering log /var/log/foo/foo.log.2017-07-04
log does not need rotating
How do I make it compress the files and delete the oldest ones, when their total number exceeds 2?