Python是否有像PHP一样的标准错误日志文件和错误日志函数?
作为一名开发人员,尝试从php转换为python。目前正在尝试调试一个运行大约需要45分钟的python脚本。从命令行运行时,它还没有死掉。从cron运行时,大约有一半时间会死亡 使用php,我可以返回到它运行的方框,检查它运行时的日志文件,并在脚本崩溃时查找/修复错误。python也有类似的功能吗?python可以在文件中打印日志,但这并不是现成的行为。默认情况下,它打印的日志级别等于或高于stderr上的警告:Python是否有像PHP一样的标准错误日志文件和错误日志函数?,php,python,error-logging,Php,Python,Error Logging,作为一名开发人员,尝试从php转换为python。目前正在尝试调试一个运行大约需要45分钟的python脚本。从命令行运行时,它还没有死掉。从cron运行时,大约有一半时间会死亡 使用php,我可以返回到它运行的方框,检查它运行时的日志文件,并在脚本崩溃时查找/修复错误。python也有类似的功能吗?python可以在文件中打印日志,但这并不是现成的行为。默认情况下,它打印的日志级别等于或高于stderr上的警告: import logging logging.de
import logging
logging.debug('debug')
logging.info('info')
logging.warning('warning')
logging.error('error')
logging.critical('critical')
以下是运行此脚本时发生的情况:
$ python log.py
WARNING:root:warning
ERROR:root:error
CRITICAL:root:critical
$ python log.py 2>/dev/null # does not print anything
$
因此,如果您将stderr重定向到cron作业中的某个文件,您至少应该看到该文件中的警告和错误。如果要轻松地直接登录到文件,可以使用logging.basicConfig
:
import logging
# print log in example.log instead of the console, and set the log level to DEBUG (by default, it is set to WARNING)
logging.basicConfig(filename='example.log', filemode='w', level=logging.DEBUG)
logging.debug('debug')
logging.info('info')
logging.warning('warning')
logging.error('error')
logging.critical('critical')
现在,如果您运行它,您不应该再在控制台中有任何输入,但所有内容都应该在示例中。log
:
$ python log.py
$ cat example.log
DEBUG:root:debug
INFO:root:info
WARNING:root:warning
ERROR:root:error
CRITICAL:root:critical
您将在中找到更多详细信息和配置选项。我相信您要求的是两件不同的事情。PHP通常作为服务器端应用程序运行,因此具有特定的错误日志结构。Python可以运行任何类型的应用程序,并且可以同时运行多个实例——因此,在这种情况下,您提出的问题实际上没有意义。然而,你仍然可以实现你的愿望 尽管您可以直接从cron作业“>/path/to/log.txt”将输出通过管道传输到stderr,但要获得更详细的信息,请使用pythons libary——标准库的一部分。但就我个人而言,我更喜欢——它为日志库提供了一个很好的包装 所以