Найти - Пользователи
Полная версия: Вывод вызываемой функции из в файл
Начало » Python для новичков » Вывод вызываемой функции из в файл
1
oreol
В общем есть скрипт запускающий кучу других по циклу.
Можно ли как-то stderr (stdout) вызываемых скриптов выводить в определенный файл без изменений вызываемых функций?
Вариант через баш типа >/dev/null 2>&1 мне не подходит (нужен лог файл для каждого вызываемого скрипта с разными идентификаторами в названии)
doza_and
oreol
нужен лог файл для каждого вызываемого скрипта с разными идентификаторами в названии
А пример лога можно? Так непонятно что вы хотите. Что за названия? Для каждого? Это лог для каждого или идентификаторы для каждого?
oreol
Можно ли как-то stderr
Конечно можно, вариантов миллион.
oreol
doza_and
лог запускаемого скрипта
2017-01-13 09:36:38.621193 domria_ki run
{'taken': 1, ‘saved’: 0, ‘processed’: 1}
2017-01-13 09:36:40.608997 domria_ki stop
2017-01-13 09:36:40.613774 domria_kh run
{'taken': 11, ‘saved’: 10, ‘processed’: 11}
2017-01-13 09:37:04.864896 domria_kh stop
Крохотный кусок лога stderr одной из вызываемых функций (писал не я)
DEBUG:django.db.backends0.003) SELECT `board_advert`.`id`, `board_advert`.`date_of_update` FROM `board_advert` WHERE (`board_advert`.`city_id` = 3 AND `board_advert`.`author_id` = 8606 AND `board_advert`.`category_id` = 17 AND `board_advert`.`link` = 'https://www.olx.ua/obyavlenie/prodam-kafe-ID9d4IF.html' ) ORDER BY `board_advert`.`date_of_update` DESC LIMIT 1; args3, 8606, 17, 'https://www.olx.ua/obyavlenie/prodam-kafe-ID9d4IF.html')
DEBUG:grab.network: GET https://www.olx.ua/nedvizhimost/arenda-kvartir/dnepr/?view=list
DEBUG:django.db.backends0.001) SELECT `board_advert`.`id`, `board_advert`.`date_of_update` FROM `board_advert` WHERE (`board_advert`.`city_id` = 3 AND `board_advert`.`author_id` = 8606 AND `board_advert`.`category_id` = 26 AND `board_advert`.`link` = 'https://www.olx.ua/obyavlenie/sdam-v-arendu-uchastok-IDotjMu.html' ) ORDER BY `board_advert`.`date_of_update` DESC LIMIT 1; args3, 8606, 26, 'https://www.olx.ua/obyavlenie/sdam-v-arendu-uchastok-IDotjMu.html')
DEBUG:grab.stat:RPS: 2.92
DEBUG:grab.network: GET https://www.olx.ua/nedvizhimost/arenda-komnat/dnepr/?view=list
DEBUG:django.db.backends0.001) SELECT `board_advert`.`id`, `board_advert`.`date_of_update` FROM `board_advert` WHERE (`board_advert`.`city_id` = 3 AND `board_advert`.`author_id` = 8606 AND `board_advert`.`category_id` = 21 AND `board_advert`.`link` = 'https://www.olx.ua/obyavlenie/srochno-sdam-1-kv-v-novostroe-na-kirova-27d-IDpGPAs.html' ) ORDER BY `board_advert`.`date_of_update` DESC LIMIT 1; args3, 8606, 21, 'https://www.olx.ua/obyavlenie/srochno-sdam-1-kv-v-novostroe-na-kirova-27d-IDpGPAs.html')
DEBUG:django.db.backends0.023) SELECT `board_advert`.`id`, `board_advert`.`date_of_update` FROM `board_advert` WHERE (`board_advert`.`city_id` = 3 AND `board_advert`.`author_id` = 8606 AND `board_advert`.`category_id` = 21 AND `board_advert`.`link` = 'https://www.olx.ua/obyavlenie/sdam-v-arendu-realnuyu-bolshuyu-1-kom-kvartiru-na-zh-m-frunzenskiy-IDpGOHy.html' ) ORDER BY `board_advert`.`date_of_update` DESC LIMIT 1; args3, 8606, 21, 'https://www.olx.ua/obyavlenie/sdam-v-arendu-realnuyu-bolshuyu-1-kom-kvartiru-na-zh-m-frunzenskiy-IDpGOHy.html')
DEBUG:django.db.backends0.001) SELECT `board_advert`.`id`, `board_advert`.`date_of_update` FROM `board_advert` WHERE (`board_advert`.`city_id` = 3 AND `board_advert`.`author_id` = 8606 AND `board_advert`.`category_id` = 21 AND `board_advert`.`link` = 'https://www.olx.ua/obyavlenie/cdam-2k-na-gagarina-IDpGPy0.html' ) ORDER BY `board_advert`.`date_of_update` DESC LIMIT 1; args3, 8606, 21, 'https://www.olx.ua/obyavlenie/cdam-2k-na-gagarina-IDpGPy0.html')
doza_and
У меня сложилось впечатление что вы хотите в один лог файл собрать вывод внешних процессов, но хотите его разметить сообщениями какой это процесс записал.

oreol
Вариант через баш типа >/dev/null 2>&1 мне не подходит

Но похоже вам подходит bash вариант типа “2>>” добавление данных в конец существующего файла. Перед вызовами сторонних программ просто аппендите в этот файл нужную вам разметку и сообщения об источнике вывода.


oreol
doza_and
У меня сложилось впечатление что вы хотите в один лог файл собрать вывод внешних процессов, но хотите его разметить сообщениями какой это процесс записал.
А кроме баш вывода 2>>. Просто если так сделать то будет весь лог по всем скриптам, а это очень неудобно. А писать скрипт на обработку этого огромного файла (даже если за день/час) совсем не хочется (+ дополнительная нагрузка/ задача в крон не нужна)
doza_and
Приветите пожалуйста пример что конкретно вы хотите получить. ведь непонятно.Я именно об этом писал раньше.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB