def configure_logging(logtype: str, logfilename: Optional[str]=None, debug_logging: bool=False,
rotate_length: int=1000000, max_rotated_files: int=250) -> None:
global logger
level = logging.INFO
if debug_logging:
level = logging.DEBUG
if logtype not in ['stdout', 'syslog', 'file']:
raise errors.IrisettError('invalid logtype name %s' % logtype)
if rotate_length is None:
rotate_length = 1000000
if max_rotated_files is None:
max_rotated_files = 250
logger = logging.getLogger('irisett')
logger.setLevel(level)
if logtype == 'stdout':
handler = logging.StreamHandler() # type: Any
handler.setLevel(level)
formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')
elif logtype == 'syslog':
handler = logging.handlers.SysLogHandler(address='/dev/log')
handler.setLevel(level)
formatter = logging.Formatter('%(name)s - %(levelname)s - %(message)s')
else: # == file
logfilename = cast(str, logfilename)
logpath = os.path.split(logfilename)[0]
if not os.path.exists(logpath):
os.makedirs(logpath)
handler = logging.handlers.RotatingFileHandler(logfilename, maxBytes=rotate_length,
backupCount=max_rotated_files)
handler.setLevel(level)
formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')
handler.setFormatter(formatter)
logger.addHandler(handler)
评论列表
文章目录