一、引言
python提供了个非常有效的日志服务基本库,本着拿来主意原则,我们无需自建日志服务。
二、代码
简单粗暴点,代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | class Logger: def __init__( self , logName , LogPath = '/var/log/pythonlog/' ,LogFileName = 'autotest.log' ): logfile = LogPath + LogFileName try : os.makedirs(LogPath ) os.mknod(logfile) except : os.mknod(logfile) self ._logger = logging.getLogger(logName) handler = logging.FileHandler(logfile) formatter = logging.Formatter( '%(asctime)s %(filename)s[line:%(lineno)d] module:%(module)s %(levelname)s: %(message)s' ) handler.setFormatter(formatter) self ._logger.addHandler(handler) if GlobalVar.debug: self ._logger.setLevel(logging.INFO) else : self ._logger.setLevel(logging.DEBUG) # 记录日志并前台打印 def log( self , msg , type = 'info' ): if self ._logger is not None : if type = = 'info' : self ._logger.info(msg) mess = '[INFO ' + time.strftime( '%D %H:%M:%S' ) + '] ' + msg print mess elif type = = 'error' : self ._logger.error(msg) mess = '[ERR ' + time.strftime( '%D %H:%M:%S' ) + '] ' + msg print mess elif type = = 'warning' : self ._logger.warning(msg) mess = '[WAR ' + time.strftime( '%D %H:%M:%S' ) + '] ' + msg print mess elif type = = 'debug' : self ._logger.debug(msg) mess = '[DEB ' + time.strftime( '%D %H:%M:%S' ) + '] ' + msg print mess # 记录日志不进行前台打印,全部依照info写入日志文件。 def setIniLog( self , msg ): if self ._logger is not None : self ._logger.info(msg) |
这个类未使用logging基本库直接提供的日志信息前台展示,如果需要的话,请自行百度~
默认创建/var/log/pythonlog/目录,并在其中保存一个叫pythonlog.log的日志文件,所有的信息都会往里面追加写。
三、结束
能力有限,欢迎互相伤害~
纯手打,版权所有,转载请注明出处,谢谢~