如何在python脚本中记录错误(进程)

时间:2014-02-26 13:13:59

标签: python logging

我需要在运行为进程的python脚本中记录错误。

我目前的代码:

import ips
import sys
import time
import logging
import os
import string
import json
import multiprocessing
import MySQLdb as mdb

from daemon import Daemon


logging.basicConfig(format = u'%(levelname)-8s [%(asctime)s] %(message)s', level = logging.INFO, filename = u'/var/log/info.log')


class MyDaemon(Daemon):
    def run(self):        
        print 'the script was run'
        logging.info("the script was run")

        while True:

            [My code Here]

            time.sleep(10)


if __name__ == "__main__":
    daemon = MyDaemon('/var/run/pid.pid')
    if len(sys.argv) > 1:
        if 'start' == sys.argv[1]:
            daemon.start()
        elif 'stop' == sys.argv[1]:
            daemon.stop()
        elif 'restart' == sys.argv[1]:
            daemon.restart()
        else:
            print "Unknown command"
            sys.exit(2)
        sys.exit(0)
    else:
        print "usage: %s start|stop|restart" % sys.argv[0]
        sys.exit(2)

有时我的进程关闭但我没有看到错误报告。如果进程关闭,我怎么能看到错误报告?

1 个答案:

答案 0 :(得分:0)

使用日志记录模块捕获异常。 E.g:

import logging

except serial.SerialException as e:
      logging.debug("Could not open serial port: {}".format(com_port, e))

我不知道你的代码,你进入循环但我可以建议你在程序中使用可能的返回。如果它因特定原因而中断,那么你会得到一些提示。这也可以记录下来。 在python中,您可以轻松返回多个参数。我不知道,为什么你不使用这些功能。