code: func OpenFile(path string, perm os.FileMode, size int64) (*LogFile, error) {
  	l := LogFile{}
  	l.path = path
  	l.perm = perm
  	l.size = size
  	l.rate = DefaultRotationRate
  
  	// Search for the first available path
  	err := l.searchFirstAvPath()
  	if err != nil {
  		return nil, err
  	}
  	// Open the file descriptor
  	f, err := os.OpenFile(l.Path(), os.O_APPEND|os.O_CREATE|os.O_RDWR, l.perm)
  	if err != nil {
  		return nil, err
  	}
  	l.file = f
  	l.writer = gzip.NewWriter(f)
  	// We start the rotate routine
  	l.rotateRoutine()
  	return &l, nil
  }
docs: // OpenFile opens a new file for logging