@recloudor

Go. Почему логи отображаются в файле, а не в консоле?

Все логи, которые я принчу через log.Println отображаются в файле текущей сессии программы, создается файл pid-xxxx.log.
fmt.Println принтит в консоль

Раньше все ок было, может с этим связано как-то?
if *FD != 0 {
		log.Println("Starting with FD ", *FD)
		file1 = os.NewFile(uintptr(*FD), "parent socket")
		listener1, err = net.FileListener(file1)
		if err != nil {
			log.Fatalln("fd listener failed: ", err)
		}
	} else {
		log.Println("Virgin Start")
		listener1, err = net.Listen("tcp", s.Addr)
		if err != nil {
			log.Fatalln("listener failed: ", err)
		}
	}

err = s.Serve(listener1)
  • Вопрос задан
  • 453 просмотра
Пригласить эксперта
Ответы на вопрос 1
Sevlyar
@Sevlyar
fmt.Print* для вывода использует stdout (os.Stdout), а log.Print* выводит в stderr (os.Stderr). Если вы действительно используете стандартный пакет log, то видимо os.Stderr где-то заменяется другим файлом (возможно это делает одна из сторонних библиотек). Проверить это можно легко: попробуйте записать что-нибудь уникальное в os.Stderr (после того, как закончатся все инициализации) и посмотреть куда это выведется.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы