def setup_logger(level, logdir, service_name): # process level if isinstance(level, bool) and level is True: level = logging.DEBUG else: level = logging.INFO # clear logging default handlers logging.getLogger().handlers.clear() logger.handlers.clear() # add logger format formatter = logging.Formatter(FORMAT, TIMESTAMP_FORMAT) # set logger handler if level == logging.INFO: # add rotaing file handler log_file_name = 'logger-%s.log' % service_name log_file_str = os.path.join(logdir, log_file_name) file_handler = RotatingFileHandler(filename=log_file_str, maxBytes=1024 * 1024 * 50, backupCount=5, encoding='utf-8') file_handler.suffix = "_%Y-%m-%d_%H.log" file_handler.setFormatter(formatter) logger.addHandler(file_handler) # default console handler console_handler = logging.StreamHandler() console_handler.setLevel(logging.NOTSET) console_handler.setFormatter(formatter) logger.addHandler(console_handler) # set level logger.setLevel(level)
def get_logger_bak(name): if os.path.exists(LOG_PATH): pass else: os.mkdir(LOG_PATH) format = u'%(asctime)s\t%(levelname)s\t%(filename)s:%(lineno)d\t%(message)s' # logger.setLevel(logging.DEBUG) # new file every minute # rotation_logging_handler = TimedRotatingFileHandler(LOG_PATH+'/'+LOG_FILEBASENAME, # when='MIDNIGHT', # interval=1, # backupCount=3) rotation_logging_handler = RotatingFileHandler( "%s/%s" % (LOG_PATH, LOG_FILEBASENAME), mode='a', maxBytes=10 * 1024, # maxBytes=10*1024*1024, #MB backupCount=3, #keep total file number encoding=None, delay=0) rotation_logging_handler.setLevel(logging.DEBUG) rotation_logging_handler.setFormatter(logging.Formatter(format)) rotation_logging_handler.suffix = '%Y%m%d' #rotation_logging_handler.namer = get_filename(LOG_PATH+'/'+LOG_FILEBASENAME) logger = logging.getLogger() logger.addHandler(rotation_logging_handler) return logger
def getLogger(logname, name, print_flag=True): # 创建一个logger lg = logging.getLogger(name) lg.setLevel(logging.DEBUG) # 创建一个handler,用于写入日志文件,日期滚动,保存七天 # fh = TimedRotatingFileHandler(filename=logname, when="D", interval=1, backupCount=7, encoding='utf-8') # 按大小保存,保存300M,保留一份 fh = RotatingFileHandler(filename=logname, maxBytes=1024 * 1024 * 300, backupCount=1, encoding='utf-8') # fh = logging.FileHandler(logname, encoding='utf-8') fh.setLevel(logging.DEBUG) # 设置日志名 fh.suffix = "%Y-%m-%d" # 定义handler的输出格式 formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s') fh.setFormatter(formatter) # 给logger添加handler lg.addHandler(fh) # 再创建一个handler,用于输出到控制台 if print_flag: ch = logging.StreamHandler() ch.setLevel(logging.DEBUG) ch.setFormatter(formatter) lg.addHandler(ch) return lg
def initLogger(): logname = getProjectRelativePath("app.log") handler = RotatingFileHandler(logname, mode="w", maxBytes=100000, backupCount=1) handler.suffix = "%Y%m%d" logging.basicConfig( format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', level=logging.INFO, handlers=[handler]) if os.path.isfile(logname): # log already exists, roll over! handler.doRollover()
def init_logger_file(): if Options["log"]["to_file"]: filename = Options["log"]["filename"] os.makedirs(os.path.dirname(filename), exist_ok=True) formatter = logging.Formatter( fmt="%(asctime)s %(levelname)-8s %(message)s", datefmt="%Y-%m-%d %H:%M:%S") handler = RotatingFileHandler(os.path.abspath( Options["log"]["filename"]), mode='a', backupCount=100) handler.setFormatter(formatter) handler.suffix = '%Y%m%d' logger.addHandler(handler) handler.doRollover()
import logging from logging.handlers import TimedRotatingFileHandler, RotatingFileHandler # init logging logging.basicConfig() logger = logging.getLogger() logger.setLevel(logging.DEBUG) # the path of logger logs_path = ".\\logs\\" fh = RotatingFileHandler(filename=logs_path + "log.log", maxBytes=500, encoding='utf-8') formatter = logging.Formatter('%(asctime)s - [%(filename)s-%(funcName)s-%(lineno)d]-%(process)d-%(processName)s\ -%(thread)d-%(threadName)s]: %(message)s') fh.setFormatter(fmt=formatter) fh.suffix = "%y-%m-%d.log" fh.setLevel(logging.INFO) logger.addHandler(fh)