Guest User

Untitled

a guest
Jul 23rd, 2018
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.87 KB | None | 0 0
  1. # coding: utf-8
  2. import time
  3. from datetime import datetime
  4.  
  5. from logging.handlers import TimedRotatingFileHandler
  6.  
  7. def get_next_month_first_day(now=None):
  8. if not now:
  9. now = datetime.now()
  10. year = now.year
  11. month = now.month
  12. month += 1
  13. # next year
  14. if month > 12:
  15. year += 1
  16. month = 1
  17. return datetime(year, month, 1, 0, 0, 0, 0)
  18.  
  19. def datetime_to_time(d):
  20. return time.mktime(d.timetuple())
  21.  
  22. class MonthlyRotatingFileHandler(TimedRotatingFileHandler):
  23. def __init__(self, *args, **kwargs):
  24. TimedRotatingFileHandler.__init__(self, *args, **kwargs)
  25. self.rolloverAt = self.get_next_rollover_at()
  26.  
  27. def doRollover(self):
  28. TimedRotatingFileHandler.doRollover(self)
  29. self.rolloverAt = self.get_next_rollover_at()
  30.  
  31. def get_next_rollover_at(self):
  32. return datetime_to_time(get_next_month_first_day())
Add Comment
Please, Sign In to add comment