• logger


    自定义保存路径、保存文件个数

    import logging
    from logging.handlers import TimedRotatingFileHandler
    from pathlib import Path
    import os
    
    dir_path = os.path.dirname(os.path.dirname(os.path.realpath(__file__)))
    
    # =============== config ===============
    LOGGER_NAME = 'surf_draw'
    CONSOLE_LEVEL = logging.INFO
    LOG_PATH = Path(os.path.join(dir_path, 'logs'))
    # ======================================
    
    
    INFO_PATH = LOG_PATH / Path('info')
    WARNING_PATH = LOG_PATH / Path('warning')
    ERROR_PATH = LOG_PATH / Path('error')
    
    INFO_PATH.mkdir(parents=True, exist_ok=True)
    WARNING_PATH.mkdir(parents=True, exist_ok=True)
    ERROR_PATH.mkdir(parents=True, exist_ok=True)
    
    # create logger
    logger = logging.getLogger(LOGGER_NAME)
    logger.setLevel(logging.INFO)
    
    # create console handler and set level to info
    stream_handler = logging.StreamHandler()
    stream_handler.setLevel(CONSOLE_LEVEL)
    
    # create file handler and set level to info
    file_name = LOG_PATH.joinpath('info/info.log')
    info_handler = TimedRotatingFileHandler(filename=file_name, when='midnight', backupCount=10)
    info_handler.setLevel(logging.INFO)
    
    # create file handler and set level to warning
    file_name = LOG_PATH.joinpath('warning/warning.log')
    warning_handler = TimedRotatingFileHandler(filename=file_name, when='midnight', backupCount=10)
    warning_handler.setLevel(logging.WARNING)
    
    # create file handler and set level to error
    file_name = LOG_PATH.joinpath('error/error.log')
    error_handler = TimedRotatingFileHandler(filename=file_name, when='midnight', backupCount=10)
    error_handler.setLevel(logging.ERROR)
    
    # create formatter
    stream_formatter = logging.Formatter('[{asctime}][{levelname}] {message}', style='{', datefmt='%Y-%m-%d %H:%M')
    file_formatter = logging.Formatter('[{asctime}][{levelname}][{filename} line{lineno}] {message}', style='{', datefmt='%Y-%m-%d %H:%M:%S')
    
    # add formatter to ch
    stream_handler.setFormatter(stream_formatter)
    info_handler.setFormatter(file_formatter)
    warning_handler.setFormatter(file_formatter)
    error_handler.setFormatter(file_formatter)
    
    # add ch to logger
    logger.addHandler(stream_handler)
    logger.addHandler(info_handler)
    logger.addHandler(warning_handler)
    logger.addHandler(error_handler)
    
    logger.debug('Log module loaded successfully.')

    只打印 info 信息,不保存文件

    import logging
    
    # create logger
    logger = logging.getLogger('RunWayWind')
    logger.setLevel(logging.INFO)
    
    # create console handler and set level to debug
    ch = logging.StreamHandler()
    ch.setLevel(logging.INFO)
    
    # create formatter
    formatter = logging.Formatter(
        '[{asctime}][{levelname:^5}][ {filename:^20} line{lineno:>5}] {message}', style='{', datefmt='%Y/%m/%m %H:%M:%S')
    
    # add formatter to ch
    ch.setFormatter(formatter)
    
    # add ch to logger
    logger.addHandler(ch)
    
    logger.info('Log module loaded successfully.')
  • 相关阅读:
    Hibernate缓存之初探
    Oracle、MySql、SQLServer 数据分页查询
    LISTAGG WITHIN GROUP函数使用方法
    exp/imp密码特殊字符处理
    Oracle动态授权用户权限
    Centos7二进制安装Mysql8.0.14
    Zabbix监控Windows网卡流量
    Zabbix监控通过jvm插件监控Tomcat
    Linux安装RabbitMQ3.73开启插件shovel并做配置
    yum安装指定路径和配置文件出错
  • 原文地址:https://www.cnblogs.com/luochunxi/p/16400459.html
Copyright © 2020-2023  润新知