PHP使用Logger执行Python脚本问题

时间:2018-09-10 17:41:08

标签: php python logging

我几乎尝试了所有方法,但是找不到解决问题的方法:

我的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

0 个答案:

没有答案