Windows任务计划程序和python日志记录模块

时间:2016-04-03 16:17:21

标签: python windows logging scheduler

我有一个每天运行的程序。我想为每次运行创建一个日志。以下是负责记录的代码片段:

logging.basicConfig(filename = 'log.txt', level = logging.DEBUG, format = '%(asctime)s - %(levelname)s - %(message)s')

logging.debug('Start of program') # example logging

只要我通过.py文件或.bat文件(鼠标单击文件浏览器)启动它,一切都运行得很好。不幸的是,当我把它放在计划表上时,程序运行正常,但是日志文件没有被创建。

我尝试了多个调度程序设置,但问题似乎位于脚本代码中。

感谢您的反馈!

1 个答案:

答案 0 :(得分:3)

我也希望将解决方案添加为答案,因为这似乎是一个常见的问题,这让我在过去感到悲伤。

从Windows任务计划程序执行某些操作时,该进程的工作目录默认情况下不是可执行文件的路径,而是其他目录。例如。当您的计划程序操作调用C:\sample.py时,这不会在C:\中执行,而是C:\Windows\system32(在我的情况下)。

您可以通过添加一个调度简单的Python / Batch脚本的Scheduled Task来验证这一点,该脚本将活动的工作目录保存到某个文件,例如

import os

with open("C:\\cwd.txt", "w") as fh:
    fh.write(os.getcwd())

或者

echo %cd% >> C:\cwd.txt

这与你的程序可能包含的任何相对路径混淆,我怀疑它有一些我未能确定的更微妙的问题。

通过为您的操作明确设置可选的“开始”路径,可以避免出现问题: enter image description here