【问题标题】:Python logger not logging when called with scheduler on windows server 2012在 Windows Server 2012 上使用调度程序调用 Python 记录器时不记录
【发布时间】:2017-06-26 14:01:39
【问题描述】:

我编写了一个简单的“git pull”脚本以在 Windows 服务器上运行:

import logging
import subprocess

# Initialize logging
logger = logging.getLogger('autopull')
logger.setLevel(logging.INFO)
log_file = logging.FileHandler('autopull.log')
log_file.setLevel(logging.INFO)
formatter = logging.Formatter("%(asctime)s:%(levelname)s:%(message)s")
log_file.setFormatter(formatter)
logger.addHandler(log_file)

# Main part
logger.info('Started')
try:
    subprocess.check_output("C:\Program Files\Git\cmd\git pull")
    logger.info('Pulled repo successfully')
except:
    logger.exception("Pulled failed")

我使用了一个记录器,因为调度程序总是告诉我它以退出代码 0 执行,我想仔细检查是否是这种情况。

当我手动调用脚本时,它工作正常,并且记录器会写入 autopull.log。但是,当它被调度程序调用时,记录器什么也不写。该任务以“以最高权限运行”和“无论用户是否登录都运行”运行。

是不是我做错了什么?

编辑 1:添加计划任务参数

一般:

  • “无论用户是否登录都运行”和“以最高权限运行”。
  • 配置:Windows Server 2012 R2

触发器:

  • 触发:一次
  • 详细信息:2017 年 6 月 26 日下午 12:30 - 触发后,每 1 小时无限次重复
  • 状态:已启用

动作:

  • 操作:启动程序
  • 详细信息:D:\Anaconda3\python.exe D:\projects\foo\autopull.py

条件:

  • “仅在计算机使用交流电源时启动任务”和“在计算机切换到电池电源时停止”。

设置:

  • “允许任务按需运行”和“如果正在运行的任务在请求时未结束,则强制停止”。

【问题讨论】:

  • 请分享上面的所有任务计划程序操作设置。
  • @ivan7707 完成!

标签: python logging windows-server-2012


【解决方案1】:

@Dr Mouse,试试这个。我能够运行您的代码(在注销时)。仅供参考,我也在 Windows 上运行 Anaconda。

一旦进入编辑操作窗口(在您的操作中,如上所示,单击编辑按钮),在程序/脚本中,确保它指向您的 Python (Anaconda) 的实际实例。

在程序/脚本周围加上双引号

"D:\Anaconda3\python.exe"

不要复制粘贴,直接输入。

在可选的添加参数中:

-u "D:\projects\foo\autopull.py"

在 Start in(可选)中将文件夹位置添加到脚本中,不带引号:

D:\projects\foo

如果上述方法不起作用,出于故障排除目的:

  • 在任务计划程序中单击运行(立即运行)是否有效(登录时自然会运行)?
  • 在任务计划程序中,您是否查看了任务的历史记录以了解计划程序失败的地方?

编辑:想多了,我记得直接使用“运行无论用户是否登录”运行 python 存在一些问题。

如果以上方法不行,试试这个:

创建批处理文件 (.bat) 并在其中添加这一行:

D:\Anaconda3\python.exe D:\projects\foo\autopull.py %*

将任务调度器指向这个批处理文件(而不是直接指向python脚本)。

【讨论】:

  • 感谢您的回答!我会在我的客户摆脱恶意软件感染后立即尝试...
  • @DrMouse 这些有没有用?我尝试了前几个,但它们似乎不起作用。如果我单击“当用户登录”,我的脚本将运行,但如果单击“用户是否登录”,我会收到“x01”错误代码。
猜你喜欢
  • 2010-09-11
  • 1970-01-01
  • 2015-07-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多