所以,我有一个像这样的logCreator类
import logging,logging.handlers
class LogCreator:
_logLevel = {
"NOTSET": 0,
"DEBUG": 10,
"INFO": 20,
"WARN": 30,
"WARNING": 30,
"ERROR": 40,
"CRITICAL": 50
}
def __init__(self,logFile,
level='DEBUG',
verbose=True,
maxBytes=1024*1024,
logFormat='%(asctime)s %(levelname)s %(message)s'):
self.logger = logging.getLogger(logFile)
self.logger.setLevel(self._logLevel[level])
logger_formatter = logging.Formatter(logFormat,
datefmt='%Y-%m-%d %H:%M:%S')
file_handler = logging.handlers.RotatingFileHandler(logFile, maxBytes=maxBytes, backupCount=1, encoding="UTF-8")
file_handler.setLevel(self._logLevel[level])
file_handler.setFormatter(logger_formatter)
self.logger.addHandler(file_handler)
if verbose:
console_handler = logging.StreamHandler()
console_handler.setLevel(self._logLevel[level])
console_handler.setFormatter(logger_formatter)
self.logger.addHandler(console_handler)
类LogCreator
的属性是logger
,所以如果我想做一些日志记录,我必须这样做
l = LogCreator('logfile.log')
# some script
l.logger.info('I just did something')
我觉得它看起来有点难看和不直观,如果我能写的话会更好
l = LogCreator('logfile.log')
# some script
l.info('I just did something')
因此,类logCreator
的logger
属性中的每个属性和方法都是该类的属性和方法。我在类的初始化结束时尝试了return self.logger
,但它引发了错误,因为__init__()
必须返回None
我想你可以添加一些方法来做。像这样:
然后您可以使用:
或者。您只能添加一个方法来返回记录器:
然后使用:
相关问题 更多 >
编程相关推荐