log.py 文件源码

python
阅读 23 收藏 0 点赞 0 评论 0

项目:irisett 作者: beebyte 项目源码 文件源码
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)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号