python的日志简单使用
时间:2009-06-29 来源:mseaspring
开始一个项目的时候总是匆匆的写了代码,但是有时候会发现一个问题,那就是经常会为一个很长时间才出现一次的bug感到很苦恼,如果没有及时捕捉的话,那还要浪费很多时间去重现,再纠正,还好python有比较方便的日志供使用,logging模块
import logging
def getFileLogger(name): logger = logging.getLogger(name) hdlr = logging.FileHandler(name) formatter = logging.Formatter('[%(asctime)s] %(levelname)s : %(message)s') hdlr.setFormatter(formatter) logger.addHandler(hdlr) logger.setLevel(LOGLEVEL) logger.disabled = True return logger, hd
def getConsoleLogger(name): logger = logging.getLogger() logger.setLevel(LOGLEVEL) formatter = logging.Formatter('[%(asctime)s] %(levelname)s : %(message)s') hd = logging.StreamHandler() hd.setFormatter(formatter) hd.setLevel(LOGLEVEL) logger.disabled = True return logger, hd
这 两个函数都是封装了logging模块的,前者为建立一个文件的logging,后者是直接在控制台输出,建立一个logging的时候同时要建立一个句 柄,也就是hdlr,当程序不需要日志的时候要删除创建的句柄和释放logging,这样避免占用资源或者出现重复的打印,这种现象在多线程打印的日志的 时候经常出现,粗心导致,formatter命令可以格式化logging,这样打印的东西很漂亮和工整,使用的时候就调用这两个函数直接返回一个可用的 logger和句柄,有了日志,就可以在很多必要的地方加上输出,以防备bug的出现,并且能及时捕捉,及时分析。记性不好,写在这里,忘了的时候可以查 查,节省时间,呵呵
import logging
def getFileLogger(name): logger = logging.getLogger(name) hdlr = logging.FileHandler(name) formatter = logging.Formatter('[%(asctime)s] %(levelname)s : %(message)s') hdlr.setFormatter(formatter) logger.addHandler(hdlr) logger.setLevel(LOGLEVEL) logger.disabled = True return logger, hd
def getConsoleLogger(name): logger = logging.getLogger() logger.setLevel(LOGLEVEL) formatter = logging.Formatter('[%(asctime)s] %(levelname)s : %(message)s') hd = logging.StreamHandler() hd.setFormatter(formatter) hd.setLevel(LOGLEVEL) logger.disabled = True return logger, hd
这 两个函数都是封装了logging模块的,前者为建立一个文件的logging,后者是直接在控制台输出,建立一个logging的时候同时要建立一个句 柄,也就是hdlr,当程序不需要日志的时候要删除创建的句柄和释放logging,这样避免占用资源或者出现重复的打印,这种现象在多线程打印的日志的 时候经常出现,粗心导致,formatter命令可以格式化logging,这样打印的东西很漂亮和工整,使用的时候就调用这两个函数直接返回一个可用的 logger和句柄,有了日志,就可以在很多必要的地方加上输出,以防备bug的出现,并且能及时捕捉,及时分析。记性不好,写在这里,忘了的时候可以查 查,节省时间,呵呵
本文出自 “只想简单” 博客,请务必保留此出处http://gmingzhe.blog.51cto.com/810664/163826
相关阅读 更多 +