这 几天被程序调试搞得比较的郁闷啊,由于是modpython程序,结果是在浏览器中显示的,有时候为了调试一行代码,需要重启apache (modpython的reload()好像不是每次都灵验的),打开调试的网址,输入信息进入指定的页面,然后给出执行条件,根据执行结果来修正究竟是 代码的哪里出错了。由于web页面的内容是通过函数的return来实现的,扔出一个显示信息之后,后续的显示就无法完成了。调试进度非常的慢。

后来看了limodou的blog,对logging部分的讲解之后,发现日志对这种调试应该是很不错的。开始研究logging,看了python自己带的文档,感觉使用起来相对(Log4Cpp)还是简单的,先照猫画虎的描一个:
--------------------------
def log ():
    """写日志
    """
    logger = logging.getLogger('ebiz')
    hdlr = logging.FileHandler(ParamDef.LogPath+LogFileName())
    formatter = logging.Formatter('%(asctime)s [%(levelname)s] %(message)s')#格式
    hdlr.setFormatter(formatter)
    logger.addHandler(hdlr)
    logger.setLevel(logging.NOTSET)#DEBUG, INFO, WARNING, ERROR, CRITICAL

    return logger#返回日志对象

#调用:log().debug('msg')
---------------------------
由于我是在一个模块中使用日志的,为了简化调用,需要对logger的debug,info,warning,error,critical,log,exception这几个方法进行重新封装一下。不过这个就是和自己的程序有关了,不再描述。

还有一个要强调的是,里面的FileHandler,不单单允许是一个文件,可以是:STREAMHANDLER,FILEHANDLER, ROTATINGFILEHANDLER,SOCKETHANDLER,DATAGRAMHANDLER,SYSLOGHANDLER, NTEVENTLOGHANDLER,SMTPHANDLER,MEMORYHANDLER,HTTPHANDLER