我几乎尝试了所有方法,但是找不到解决问题的方法:
我的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)中。
详细了解建议的日志记录:Making Python loggers output all messages to stdout in addition to log
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