python日誌主要用logging模塊;python
示例代碼以下:spa
#coding:utf-8 import logging class logger(): ''' %(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s ''' format_dict = { 1 : logging.Formatter('%(asctime)s - %(filename)s-[line:%(lineno)d]-%(name)s - %(levelname)s - %(message)s'), 2 : logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s'), 3 : logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s'), 4 : logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s'), 5 : logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') } def __init__(self, logname, loglevel, logger): ''' 指定保存日誌的文件路徑,日誌級別,以及調用文件 將日誌存入到指定的文件中 ''' # 建立一個logger self.logger = logging.getLogger(logger) self.logger.setLevel(logging.DEBUG) # 建立一個handler,用於寫入日誌文件 fh = logging.FileHandler(logname) fh.setLevel(logging.DEBUG) # 再建立一個handler,用於輸出到控制檯 ch = logging.StreamHandler() ch.setLevel(logging.DEBUG) # 定義handler的輸出格式 #formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') formatter =self.format_dict[int(loglevel)] fh.setFormatter(formatter) ch.setFormatter(formatter) # 給logger添加handler self.logger.addHandler(fh) self.logger.addHandler(ch) def __init__(self,loglevel, logger): ''' 指定保存日誌的文件路徑,日誌級別,以及調用文件 將日誌存入到指定的文件中 ''' # 建立一個logger self.logger = logging.getLogger(logger) self.logger.setLevel(logging.DEBUG) # 再建立一個handler,用於輸出到控制檯 ch = logging.StreamHandler() ch.setLevel(logging.DEBUG) # 定義handler的輸出格式 #formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') formatter =self.format_dict[int(loglevel)] ch.setFormatter(formatter) # 給logger添加handler self.logger.addHandler(ch) def getlog(self): return self.logger if __name__ == '__main__': logger = logger(loglevel=2, logger="log").getlog() logger.info("we are the world!!!!")