#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».