Я перепробовал почти все, но не могу найти решение своей проблемы:
Мой PHP вызывает скрипт python api.py с тремя параметрами:
$command = escapeshellcmd("/usr/local/bin/python3 /path_to/api.py new_battle_vs_cpu " .
$my_json["combat_id"] . " " . base64_encode($_POST["json"]));
$output = exec($command, $out, $status);
Внутри скрипта Python я работаю с журналами как обычно и рекомендую во многих местах. Я хочу распечатать журналы в консоли (sys.stdout) и в файл журнала (logs / api.log).
Подробнее о рекомендуемой регистрации: Заставить регистраторы Python выводить все сообщения на стандартный вывод в дополнение к записи
file_handler = logging.FileHandler(filename='./logs/api.log')
stdout_handler = logging.StreamHandler()
handlers = [file_handler, stdout_handler]
logging.basicConfig(
level=logging.DEBUG,
format='[%(asctime)s] {%(filename)s:%(lineno)d} %(levelname)s - %(message)s',
handlers=handlers
)
rootLogger = logging.getLogger()
Когда я выполняю с помощью терминала, все работает как шарм. Я получаю свои журналы в файле журнала и через консоль.
Когда я отправляю запрос POST на мой сервер, если я комментирую ВСЕ код регистратора, я правильно получаю вывод файлов. Но, как только я установлю регистраторы, я потеряю результат, поэтому не могу получить вывод в PHP.
Примечание: Я попытался дать chmod 777 файлу, но ничего.
Примечание: Я также попытался настроить регистратор с помощью:
logging.basicConfig(filename='logs/api.log', level=logging.DEBUG, format='C_{} - %(levelname)s - %(message)s'.format(sys.argv[2]))
Есть предложения? Любой указатель?
Заранее спасибо
Я использую Python3