python寫(xiě)日志文件操作類(lèi)與應(yīng)用示例
本文實(shí)例講述了python寫(xiě)日志文件操作類(lèi)與應(yīng)用。分享給大家供大家參考,具體如下:
項(xiàng)目的開(kāi)發(fā)過(guò)程中,日志文件是少不了的,通過(guò)寫(xiě)日志文件,可以知道程序運(yùn)行的情況。特別當(dāng)部署在生產(chǎn)環(huán)境中的時(shí)候,這個(gè)時(shí)候一般不能debug , 當(dāng)然在有些情況時(shí)可以 remote debug (遠(yuǎn)程debug)。那種情況另當(dāng)別論。還是用通常的寫(xiě)日志的方法,比如在 java 中,經(jīng)??梢钥吹?log4j,sf4j,logback等三方組件來(lái)寫(xiě)日志。
在python中如何實(shí)現(xiàn)呢,其實(shí)python 本身也帶了日志操作的庫(kù)??梢灾苯邮褂?。這里我把在項(xiàng)目中用到的整理了一下,分享在下面,這個(gè)實(shí)現(xiàn)的方法,主要有兩點(diǎn)
1. 寫(xiě)日志的類(lèi)
2.日志配置文件(handler,logger,以及日志保存的路徑等)
寫(xiě)日志的類(lèi)
''' 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!")
日志配置文件,與上面的類(lèi)在同一文件夾下 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 的話,這樣日志就會(huì)保存到 才c:/logs/InetServer.log 文件里面,而且當(dāng)日志超過(guò)2000000 d的時(shí)候,重新另外生成一個(gè)文件,保存9天的記錄,你可以配置成30,這樣就保存了最近一個(gè)月的日志記錄。
更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《Python日志操作技巧總結(jié)》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門(mén)與進(jìn)階經(jīng)典教程》及《Python文件與目錄操作技巧匯總》
希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。
相關(guān)文章
Python把圖片轉(zhuǎn)化為pdf代碼實(shí)例
這篇文章主要介紹了Python把圖片轉(zhuǎn)化為pdf代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-07-07OpenCV如何去除圖片中的陰影的實(shí)現(xiàn)
這篇文章主要介紹了OpenCV如何去除圖片中的陰影的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03Python?設(shè)計(jì)模式行為型訪問(wèn)者模式
這篇文章主要介紹了Python?設(shè)計(jì)模式行為型訪問(wèn)者模式,訪問(wèn)者模式即Visitor?Pattern,訪問(wèn)者模式,指作用于一個(gè)對(duì)象結(jié)構(gòu)體上的元素的操作,下文相關(guān)資料需要的小伙伴可以參考一下2022-02-02python中使用urllib2偽造HTTP報(bào)頭的2個(gè)方法
這篇文章主要介紹了python中使用urllib2偽造HTTP報(bào)頭的2個(gè)方法,即偽造http頭信息,需要的朋友可以參考下2014-07-07