python寫日志文件操作類與應(yīng)用示例
本文實例講述了python寫日志文件操作類與應(yīng)用。分享給大家供大家參考,具體如下:
項目的開發(fā)過程中,日志文件是少不了的,通過寫日志文件,可以知道程序運行的情況。特別當(dāng)部署在生產(chǎn)環(huán)境中的時候,這個時候一般不能debug , 當(dāng)然在有些情況時可以 remote debug (遠(yuǎn)程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ìn)階經(jīng)典教程》及《Python文件與目錄操作技巧匯總》
希望本文所述對大家Python程序設(shè)計有所幫助。

