Как получить вывод Google-glog в консоли?

#linux #logging #console #output

#linux #ведение журнала #консоль #вывод #logging #console #output

Вопрос:

Я использую фреймворк для сверточных нейронных сетей под названием caffe, и его вывод в консоль предоставляется Google-glog. Однако, когда я пытаюсь сохранить вывод в файл, используя следующие команды:

 sh train_imagenet.sh | tee output.txt
  

или

 sh train_imagenet.sh > output.txt
  

И я получаю пустой файл, а вывод не сохраняется в файл. Итак, я хочу знать, как получить этот вывод.
Заранее спасибо.

Комментарии:

1. Попробуйте sh train_imagenet.sh 2> output.txt . Я думаю, это должно сработать, поскольку кажется, что Google-glog выводит вывод в stderr вместо стандартного вывода.

Ответ №1:

Используйте FLAGS_alsologtostderr = 1; в main() .

Для получения дополнительной информации ознакомьтесь с Setting Flags разделом в документе glog.

Ответ №2:

Я тоже использую Caffe. Вы можете попробовать

 sh train_imagenet.sh 2>amp;1 | tee output.txt
  

Вы также можете добавить опцию -i в tee, чтобы игнорировать Ctrl-C (который передает сигнал SIGINT в train_imagenet.sh вместо tee)

 sh train_imagenet.sh 2>amp;1 | tee -i output.txt
  

Кстати, glog по умолчанию записывает сообщения журнала в файлы журнала. Файлы журналов обеспечивают лучшее разделение уровней серьезности, чем stdout и stderr.

Если не указано иное, glog записывает в имя файла «/tmp/<название программы>.<имя хоста>.<имя пользователя>.журнал.<уровень серьезности>.<дата>.<время>.<pid>» (например, «/tmp/hello_world.example.com.hamaji.log.INFO.20080709-222411.10474»).

По умолчанию glog копирует сообщения журнала об ОШИБКЕ уровня серьезности или ФАТАЛЬНОЙ стандартной ошибке (stderr) в дополнение к файлам журнала.

Расположение файла журнала может быть задано переменной окружения GLOG_log_dir или флагом командной строки log_dir (если установлен gflags). Смотрите https://godoc.org/github.com/golang/glog для получения более подробной информации.

Ответ №3:

FLAGS_logtostderr = 1 if you want it to log to console only
FLAGS_alsologtostderr = 1 if you want to log both in a file and to console.

the console for glog is «stderr».