python寫日志文件操作類與應(yīng)用示例
本文實例講述了python寫日志文件操作類與應(yīng)用。分享給大家供大家參考,具體如下:
項目的開發(fā)過程中,日志文件是少不了的,通過寫日志文件,可以知道程序運行的情況。特別當(dāng)部署在生產(chǎn)環(huán)境中的時候,這個時候一般不能debug , 當(dāng)然在有些情況時可以 remote debug (遠程debug)。那種情況另當(dāng)別論。還是用通常的寫日志的方法,比如在 java 中,經(jīng)??梢钥吹?log4j,sf4j,logback等三方組件來寫日志。
在python中如何實現(xiàn)呢,其實python 本身也帶了日志操作的庫。可以直接使用。這里我把在項目中用到的整理了一下,分享在下面,這個實現(xiàn)的方法,主要有兩點
1. 寫日志的類
2.日志配置文件(handler,logger,以及日志保存的路徑等)
寫日志的類
''' Created on 2012-2-17 @author: yihaomen.com ''' import logging.config import os class INetLogger: log_instance = None @staticmethod def InitLogConf(): currentDir=os.path.dirname(__file__) INetLogger.log_instance = logging.config.fileConfig(currentDir+os.path.sep+"logger.ini") @staticmethod def GetLogger(name = ""): if INetLogger.log_instance == None: INetLogger.InitLogConf() INetLogger.log_instance = logging.getLogger(name) return INetLogger.log_instance if __name__ == "__main__": logger = INetLogger.GetLogger() logger.debug("debug message") logger.info("info message") logger.warn("warn message") logger.error("error message") logger.critical("critical message") logHello = INetLogger.GetLogger("root") logHello.info("Hello world!")
日志配置文件,與上面的類在同一文件夾下 logger.ini
[loggers] keys=root,mysql,socket [handlers] keys=consoleHandler,rotateFileHandler [formatters] keys=simpleFormatter [formatter_simpleFormatter] format=[%(asctime)s][%(levelname)s] [%(filename)s:%(lineno)d] [thread:%(thread)d]: %(message)s [logger_root] qualname=root level=DEBUG handlers=consoleHandler,rotateFileHandler [logger_mysql] qualname=mysql level=DEBUG handlers=rotateFileHandler [logger_socket] qualname=socket level=ERROR handlers=rotateFileHandler [handler_consoleHandler] class=StreamHandler level=DEBUG formatter=simpleFormatter args=(sys.stdout,) [handler_rotateFileHandler] class=handlers.RotatingFileHandler level=DEBUG formatter=simpleFormatter args=('c:/logs/InetServer.log', 'a', 2000000, 9)
如果你用了 handler_rotateFileHandler 的話,這樣日志就會保存到 才c:/logs/InetServer.log 文件里面,而且當(dāng)日志超過2000000 d的時候,重新另外生成一個文件,保存9天的記錄,你可以配置成30,這樣就保存了最近一個月的日志記錄。
更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python日志操作技巧總結(jié)》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門與進階經(jīng)典教程》及《Python文件與目錄操作技巧匯總》
希望本文所述對大家Python程序設(shè)計有所幫助。