FileLogger: ревью логгера

Код-ревьюJunior10 минпроверка — Спринт23-t012

Проведите код-ревью простого файлового логгера: какие проблемы в коде, что не так и как исправить?

Как на собесе: 10 минут, ищи всё — гонки, утечки, ошибки, безопасность, стиль. Ссылайся на строки.

review.gogo
1package main2 3import "os"4 5type Logger interface {6	Log(msg string) error7	Close() error8}9 10type FileLogger struct{ f *os.File }11 12func NewFileLogger(path string) (*FileLogger, error) {13	f, err := os.Create(path)14	if err != nil {15		return nil, err16	}17	return &FileLogger{f}, nil18}19 20func (l *FileLogger) Log(msg string) error {21	_, err := l.f.WriteString(msg + "\n")22	return err23}24 25func (l *FileLogger) Close() error {26	return l.f.Close()27}28 29func main() {30	l := NewFileLogger("app.log")31	defer Close()32}
⌘ Enter — проверить