2014-02-26 14 views
0

我需要在作为进程运行的python脚本中记录错误。如何在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) 

有些时候,我进程关闭,但我没有看到错误报告。如果流程关闭,我如何看到错误报告?

+0

如果它正在关闭,但有一个例外,你会想要在你的主 – goncalopp

+0

有一个全面的'try'我建议你将'basicConfig()'调用移动到'if __name__ =='__main__ “身体 - 尽管这不是你的问题(为什么这是一个评论,而不是答案)。 –

回答

0

使用记录模块捕获异常。例如:

import logging 

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

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