code: func (l *Logger) rotate() error {
  	if err := l.close(); err != nil {
  		return err
  	}
  	if err := l.openNew(); err != nil {
  		return err
  	}
  	l.mill()
  	return nil
  }
docs: // rotate closes the current file, moves it aside with a timestamp in the name,
  // (if it exists), opens a new file with the original filename, and then runs
  // post-rotation processing and removal.