2016-04-03 55 views
2

我有一个每天运行的程序。我想为每次运行创建一个日志。这里是负责记录代码剪断:Windows任务调度程序和python日志记录模块

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

下是否有权访问日志文件的位置被执行脚本的用户?你有没有为动作指定一个明确的“开始”文件夹?这些是我在调度python脚本时遇到的两个问题。 – Oliver

+0

问题解决了:)非常感谢!在我指定了位置开始之后,所有事情都会顺利进行! –

回答

2

我想添加解决方案作为答案,因为这似乎是一个比较常见的问题,这在过去导致我一些悲伤。

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

您可以通过添加计划任务调用一个简单的Python /批处理脚本节省了积极的工作目录下的一些文件,如该

import os 

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

或本

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

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

问题可以通过显式设置路径,可选的“在启动”你的行动来避免: enter image description here

相关问题