PHP выполняет Python-скрипт проблемы с Logger - PullRequest
0 голосов
/ 10 сентября 2018

Я перепробовал почти все, но не могу найти решение своей проблемы:

Мой 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

...