code: func (l LogRoller) GetLogWriter() io.Writer {
  	absPath, err := filepath.Abs(l.Filename)
  	if err != nil {
  		absPath = l.Filename // oh well, hopefully they're consistent in how they specify the filename
  	}
  	lj, has := lumberjacks[absPath]
  	if !has {
  		lj = &lumberjack.Logger{
  			Filename:   l.Filename,
  			MaxSize:    l.MaxSize,
  			MaxAge:     l.MaxAge,
  			MaxBackups: l.MaxBackups,
  			LocalTime:  l.LocalTime,
  		}
  		lumberjacks[absPath] = lj
  	}
  	return lj
  }
docs: // GetLogWriter returns an io.Writer that writes to a rolling logger.
  // This should be called only from the main goroutine (like during
  // server setup) because this method is not thread-safe; it is careful
  // to create only one log writer per log file, even if the log file
  // is shared by different sites or middlewares. This ensures that
  // rolling is synchronized, since a process (or multiple processes)
  // should not create more than one roller on the same file at the
  // same time. See issue #1363.