func getOutputWriter()

in log/initialization.go [42:62]


func getOutputWriter(conf *loggerConfig) (io.Writer, io.Closer, error) {
	if conf.writer != nil {
		return conf.writer, nopCloser{}, nil
	}

	// When writing to a file, use `reopen` so that we can
	// reopen the file on SIGHUP signals
	f, err := reopen.NewFileWriterMode(conf.outputPath, 0644)
	if err != nil {
		return f, nopCloser{}, err
	}

	isMainLogger := conf.logger == logger

	sighup := make(chan os.Signal, 1)
	signal.Notify(sighup, syscall.SIGHUP)

	go listenForSignalHangup(f, isMainLogger, conf.outputPath, sighup)

	return f, f, nil
}