hello.py:
import logging
logging.info("hello, I am a log")
wrapper.py:
import subprocess
from subprocess import PIPE
result = subprocess.run('python ./hello.py'.split(' '), stdout=PIPE, stderr=PIPE, universal_newlines=True)
print(f'returncode: {result.returncode}')
print(f'stdout: {result.stdout}')
print(f'stderr: {result.stderr}')
Когда я звоню python wrapper.py
, я ожидал чтобы увидеть этот вывод:
returncode: 0
stdout: INFO:root:hello, I am a log
stderr:
Однако вместо этого я получаю этот вывод:
returncode: 0
stdout:
stderr:
И, если я заменю logging.info()
на logger.warning()
, то получу этот вывод:
returncode: 0
stdout:
stderr: WARNING:root:hello, I am a log
Но у меня есть куча кода с logging.info
повсюду, и я хотел бы включить его в подпроцесс python. Как я могу это сделать?
Заключительные замечания:
- Я думаю, что большинство людей предпочли бы позвонить
hello.py
, делая import hello
, но, скажем, это не вариант в этом случае. - Я использую Python 3.8.