为了检测在cron作业中可能发生的错误,我设置了另一个cron作业来检查由crontab发出的前一个日志:
def check_last_cron():
with open('/home/pi/Desktop/cron_output.log') as f:
txt = f.read()
f.close()
if 'Traceback' in txt:
print('Traceback detected')
send_to_phone(txt)
我有一个python程序,我需要在一个月的某一天运行它,所以我使用crontab来完成这个任务,并创建一个shell脚本来运行这个python程序。
这是我的shell脚本的一部分:
#!/bin/bash
filepath='file2018'
cd ${filepath}
python3 file.py
当我运行执行shell脚本的crontab时,日志文件显示以下错误:
line 9: python3: command not found
我真的很困惑为什么会出现这个错误,因为我已经安装了python3,并且可以直接从命令行运行python3。
此外,如果我用pytho
我有一个Python2应用程序,它通过结构日志库记录日志,而下游的日志是使用键/值语法捕获和提取的。但是,当涉及unicode字符串时,提取不起作用-u被放在unicode字符串的前面,这破坏了解析器。
是否可以将KeyValueRenderer配置为排除u‘?
import structlog
structlog.configure(processors=[structlog.processors.KeyValueRenderer()])
l = structlog.get_logger()
l.error('I am ASCII')
l.error(u'I am U
我有一个气流装置(在Kubernetes上)。我的安装程序使用DaskExecutor。我还将远程日志配置为S3。但是,当任务正在运行时,我无法看到日志,而是得到以下错误:
*** Log file does not exist: /airflow/logs/dbt/run_dbt/2018-11-01T06:00:00+00:00/3.log
*** Fetching from: http://airflow-worker-74d75ccd98-6g9h5:8793/log/dbt/run_dbt/2018-11-01T06:00:00+00:00/3.log
*** Failed to f
当在python2中运行时,我在try块本身中发现了这段检测异常的代码。
import sys
for i in range(3):
try:
if sys.exc_info()[1]:
print("Exception found")
else:
print("Exception not found")
raise Exception("Random exception")
except Exception as e: