Python系统日志文件

Python系统日志文件,python,exception,logging,Python,Exception,Logging,我有一个脚本,它的崩溃似乎是不可预测的。我不知道如何复制它 Python是否保留了一个全局系统日志文件,以便我可以返回并查看是什么异常导致了退出?如果是,在Windows上哪里可以找到它?如果可能的话,我也希望能看到回溯 编辑:我知道我可以把整个脚本放在一次尝试中…除了块,但我不知道在它再次崩溃之前我要运行多长时间。我希望能够至少获得一些关于已经发生的崩溃的粗略信息,即使这些信息只是导致崩溃的异常类型。这样,我可以尝试更可靠地复制错误 我怀疑这次事故是由于与外部设备的通信失败造成的,可能是因为电

我有一个脚本,它的崩溃似乎是不可预测的。我不知道如何复制它

Python是否保留了一个全局系统日志文件,以便我可以返回并查看是什么异常导致了退出?如果是,在Windows上哪里可以找到它?如果可能的话,我也希望能看到回溯

编辑:我知道我可以把整个脚本放在一次尝试中…除了块,但我不知道在它再次崩溃之前我要运行多长时间。我希望能够至少获得一些关于已经发生的崩溃的粗略信息,即使这些信息只是导致崩溃的异常类型。这样,我可以尝试更可靠地复制错误


我怀疑这次事故是由于与外部设备的通信失败造成的,可能是因为电缆松动。这些类型的故障本质上是随机的,很难重现,因此我想知道这是通信错误还是真正的代码错误。

如果您想知道有关异常的信息,可以使用此代码

try:
    #do some stuff
    1/0 #stuff that generated the exception
except Exception as ex:
    print ex
    raw_input()

为了正确地调试它,有一个工具。有一个非常好的教程可以让它学习使用它进行调试

如果您想知道有关异常的信息,可以使用此代码

try:
    #do some stuff
    1/0 #stuff that generated the exception
except Exception as ex:
    print ex
    raw_input()
为了正确地调试它,有一个工具。有一个非常好的教程可以让它学习使用它进行调试

你能捕捉到异常吗?如果是,则可以使用traceback打印stacktrace并确定问题发生的位置

然后,您可以调试有问题的模块,即使它是python库的一部分,也可以使用Eclipse以普通可读的形式进行调试


import traceback
...
...

try:
    <your script>
except Exception as runtime_ex:
    print runtime_ex, traceback.format_exc()
你能抓住这个例外吗?如果是,则可以使用traceback打印stacktrace并确定问题发生的位置

然后,您可以调试有问题的模块,即使它是python库的一部分,也可以使用Eclipse以普通可读的形式进行调试


import traceback
...
...

try:
    <your script>
except Exception as runtime_ex:
    print runtime_ex, traceback.format_exc()

请参阅python文档中的事后调试。您试图运行的是什么脚本?您能在您认为问题发生的地方发布一个小片段吗?看起来pdb中的事后调试程序只在上次崩溃时工作,并且在解释器的同一实例中。我希望能够查看Python在过去24小时内崩溃的所有时间列表,看看哪里出了问题。这可能吗?问题是我不确定问题发生在哪里。该脚本与多个外部设备通信,我怀疑其中一个是罪魁祸首。如果我有一个最近异常的列表,我就可以开始找出问题的实质。@poorsod如果你的脚本中有基于文件的日志记录,带有时间戳、实例标识符、python版本和回溯,你可以参考日志文件并找出问题所在。由于这似乎只是偶尔发生,您确定在解释器的所有实例上都使用了正确的python版本吗?请参阅python文档中的事后调试。这是您试图运行的脚本吗?您能在您认为问题发生的地方发布一个小片段吗?看起来pdb中的事后调试程序只在上次崩溃时工作,并且在解释器的同一实例中。我希望能够查看Python在过去24小时内崩溃的所有时间列表,看看哪里出了问题。这可能吗?问题是我不确定问题发生在哪里。该脚本与多个外部设备通信,我怀疑其中一个是罪魁祸首。如果我有一个最近异常的列表,我就可以开始找出问题的实质。@poorsod如果你的脚本中有基于文件的日志记录,带有时间戳、实例标识符、python版本和回溯,你可以参考日志文件并找出问题所在。由于这似乎只是偶尔发生,您确定在解释器的所有实例上都使用了正确的python版本吗?我非常熟悉try…除了调试技术。我希望能够回到一个半小时前崩溃的实例,找出发生了什么。我非常熟悉try…除了调试技术。我希望能够回到半小时前崩溃的一个实例,找出发生了什么。