Python 2.7通过从CreateProcess派生的解释器进行日志记录

时间:2016-06-23 17:51:20

标签: python c++ windows python-2.7 logging

我已经阅读了有关python日志记录的多个教程和HOWTO,但仍然无法弄清楚为什么我的日志文件没有被创建(或者它被创建的地方)。

如果我从windows命令提示符运行我的python源代码(" python myfile.py"),则会在与我的脚本相同的目录中创建日志文件。

但是......通过C ++ CreateProcess调用运行我的脚本:

 STARTUPINFO si;
 PROCESS_INFORMATION pi;
 GetStartupInfo(&si);
 TCHAR szCmdLine[] = "\"C:\\python27\\python.exe\" C:\\code\\myfile.py";        
 if (!CreateProcess(NULL, szCmdLine, NULL, NULL, FALSE, NULL, NULL, NULL, &si, &pi))

我的C ++应用程序启动并弹出一个命令窗口,显示运行我的python代码的进程的输出。命令窗口显示我添加的日志(流式传输到命令窗口),但我找不到任何明显创建的日志文件。我不确定它是否是我的代码中的Windows路径问题或其他模块劫持记录器文件输出。 python27目录,我的代码目录或运行我的C ++ exe的目录中没有日志文件。

我使用以下命令在我的python源文件的最顶部创建了记录器实例:

import logging
myLogger = logging.getLogger('myLogger')
myLogger.setLevel(logging.INFO)
fh = logging.FileHandler('myLog.log')
fh.setLevel(logging.INFO)
myLogger.addHandler(fh)

稍后在源中拨打电话:

myLogger.warning('myfile process started %f', time.clock())

我缺少什么想法?拜托,谢谢你。

0 个答案:

没有答案
相关问题