We write about Ruby on Rails, React.js, React Native, remote work, open source, engineering and design.
In Ruby, The Logger class can be used for rotating log files daily, weekly or monthly.
1
2daily_logger = Logger.new('foo.log', 'daily')
3
4weekly_logger = Logger.new('foo.log', 'weekly')
5
6monthly_logger = Logger.new('foo.log', 'monthly')
7
At the end of the specified period, Ruby will change the file extension of the log file as follows:
1
2foo.log.20170615
3
The format of the suffix
for the rotated log file
is %Y%m%d
.
In Ruby 2.3,
there was no way
to customize this suffix format.
Ruby 2.4 added the ability
to customize the suffix format
by passing an extra argument
shift_period_suffix
.
1
2# Ruby 2.4
3
4logger = Logger.new('foo.log', 'weekly', shift_period_suffix: '%d-%m-%Y')
5
Now, suffix of the rotated log file will use the custom date format which we passed.
1
2foo.log.15-06-2017
3