How log rotation works in rails

Hi All,

I have implemented the log rotation feature for my application, and I am seeing unexpected behaviors in the log rotation.

​config.logger =​

​::​

Logger.new(‘log/production.log’, 3, 50.kilobytes)

**ASSUMPTIONS: **

I have assumed that the above code will rotate the log whenever the log file reaches 50KB, as same as the below manner

  1. When I restart the application with log rotation changes, old log file needs to be moved to backup logs if it is has content more than 50KB

  2. production.log reaches 50 KB first time

  3. production.log content will be moved to new file called production.log.0

  4. production.log again reaches 50 KB

  5. production.log.0 content will be moved completely to production.log.1

  6. production.log content moved to production.log.0 and the production.log becomes empty.

  7. The contents of the the log files production.log, production.log.0 and production.log.1 are needs to be in sequentia order like below

  •  production.log has content FROM 11AM to 12PM
    
  •  production.log.0  has content FROM 10AM to 11AM
    
  •  production.log.1  has content FROM 9AM to 10AM
    

Actual behavior:

  1. When I start the application after log rotation settings, my current log is cleared completely and no backup is taken

  2. Then I process some request in my application

  3. production.log reaches 50 KB first time

  4. Part of the content of production.log is moved to production.log.0

  5. Part of the content of production.log.0 is moved to production.log.1

  6. The contents of the log files production.log, production.log.0 and production.log.1 are not in sequential order, instead it has the content as like below

  •  production.log has content FROM 11AM to 12PM
    
  •  production.log.0  has content FROM 10AM to 1AM
    
  •  production.log.1  has content FROM 9AM to 10AM, and some contents from 11.20AM to 11.25AM
    

Can anybody let me know
​the way that log rotation works?

regards,
Loganathan
Mob: +91 7760780741 | +91 9944414388
Skype: loganathan.sellappa
ViewMe