Python:从多个文件进行日志记录
我第一次尝试实现日志记录,但遇到了一个问题。 我有一个从文件中调用其他文件的设置。我正在尝试从每个点登录到一个文件 出于某种原因,被调用的文件没有记录任何内容,因为当我打开日志文件('snake.log')时,我看到的只是:Python:从多个文件进行日志记录,python,logging,Python,Logging,我第一次尝试实现日志记录,但遇到了一个问题。 我有一个从文件中调用其他文件的设置。我正在尝试从每个点登录到一个文件 出于某种原因,被调用的文件没有记录任何内容,因为当我打开日志文件('snake.log')时,我看到的只是: 2015-09-01 14:55:40,598 - test_logging - INFO - Program started 2015-09-01 14:55:40,598 - test_logging - INFO - Done! 我的代码在这里: #main.py
2015-09-01 14:55:40,598 - test_logging - INFO - Program started
2015-09-01 14:55:40,598 - test_logging - INFO - Done!
我的代码在这里:
#main.py
--------
from datetime import datetime
from datetime import timedelta
import sys
import os
import logging
def main():
logger = logging.getLogger("test_logging")
logger.setLevel(logging.INFO)
fh = logging.FileHandler("snake.log")
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
fh.setFormatter(formatter)
logger.addHandler(fh)
logger.info("Program started")
script_dir = os.path.dirname(os.path.realpath(__file__))
# list of scripts to be executed
metric_scripts = [
'file_1.py'
#,'file_2.py'
#,'file_3.py'
]
index_date = (datetime.now() - timedelta(days=1)).strftime("%Y.%m.%d")
for script_name in metric_scripts:
run_path = script_dir + '/' + script_name
cmd = "python " + run_path + " " + index_date
os.system(cmd)
logger.info("Done!")
if __name__ == "__main__":
main()
#file_1.py
-------------
from datetime import datetime, timedelta
import time
import logging
logger = logging.getLogger("test_logging")
logger.info("Pulling data ...")
def main():
process_date = str(sys.argv[1])
print "Doing someting here ..."
if __name__ == "__main__":
main()
嗯,
os.system
将在另一个进程中运行您的脚本,而日志模块无法跨进程通信以整合您的日志信息。文件_1.py的日志记录将写入该进程的标准输出。据我所知,os.system在调用后不会使进程输出可用,因此您将无法查看或输出这些日志行。不要说“调用文件”,而是说“运行脚本”。另外,为什么要调用其他python脚本而不是导入?我可以将其作为:file_1.main()运行吗?你能举个例子吗?