关键代码spa
调用方:debug
1 from Logger import MyLogger 2 import logging 3 import sys, os 4 5 def getLogger(): 6 # get the file name 7 fileUrl = sys.argv[0] 8 filepath, tmpfilename = os.path.split(fileUrl) 9 shotname, extension = os.path.splitext(tmpfilename) 10 11 # get the logger object 12 logger = MyLogger(logname='log.txt', loglevel=1, logger=shotname).getlog() 13 return logger 14 15 logger =getLogger() 16 logger.debug("Hoory, show!")
Logger.py日志
1 #开发一个日志系统, 既要把日志输出到控制台, 还要写入日志文件 2 import logging 3 4 class MyLogger(): 5 format_dict = { 6 1 : logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s'), 7 2 : logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s'), 8 3 : logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s'), 9 4 : logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s'), 10 5 : logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') 11 } 12 13 def __init__(self, logname, loglevel, logger): 14 ''' 15 指定保存日志的文件路径,日志级别,以及调用文件 16 将日志存入到指定的文件中 17 ''' 18 19 # 建立一个logger 20 self.logger = logging.getLogger(logger) 21 self.logger.setLevel(logging.DEBUG) 22 23 # 建立一个handler,用于写入日志文件 24 fh = logging.FileHandler(logname) 25 fh.setLevel(logging.DEBUG) 26 27 # 再建立一个handler,用于输出到控制台 28 ch = logging.StreamHandler() 29 ch.setLevel(logging.DEBUG) 30 31 # 定义handler的输出格式 32 formatter = logging.Formatter('%(asctime)s %(name)s %(thread)d %(levelname)s %(message)s') 33 fh.setFormatter(formatter) 34 ch.setFormatter(formatter) 35 36 # only first time need to add the handler 37 if(self.logger.hasHandlers() == False): 38 self.logger.addHandler(fh) 39 self.logger.addHandler(ch) 40 41 42 def getlog(self): 43 return self.logger
Logger相关属性code
能够经过下面的代码来进行设置(基本上不须要这么设置,由于经过getlogger()获取的logger对象并无集成root的相关配置):orm
1 logging.basicConfig(filename="log2.txt", level=logging.WARNING)
关于format对象