Python log 使用

log 等级: DEBUG 、INFO、WARNING(默认)、ERROR、CRITICAL 依次递增,意味着如果setLevel设为INFO,那么可以记录INFO及以上的log

 

如何将log同时输出到控制台和本地文件

配置文件:utils.py

#   配置log,logger是日志对象,handler是流处理器,console是控制台输出(没有console也可以,
#   将不会在控制台输出,会在日志文件中输出)
#   :param log_path: 输出log路径
#   :param logging_name: 记录中name,可随意
#   :return:
def logger_config(log_path, log_filename, logging_name):

    os.makedirs(log_path, mode=0o755, exist_ok=True)
    # 获取logger对象
    logger = logging.getLogger(logging_name)
    logger.setLevel(logging.INFO)
    # 创建一个handler,用于写入日志文件
    fh = logging.FileHandler(log_filename, mode='w')
    fh.setFormatter(logging.Formatter("[%(asctime)s]:%(levelname)s:%(message)s"))
    logger.addHandler(fh)
    # 创建一个handler,输出到控制台
    ch = logging.StreamHandler()
    ch.setFormatter(logging.Formatter("%(message)s"))
    logger.addHandler(ch)
    
    return logger

使用

DataSerializer._getCurrentDateFilename()
    logger = utils.logger_config(DataSerializer._LOG_ROOT,
                                 DataSerializer._DATASERIALIZER_LOG_FILENAME,
                                 "dataSerizer")
logger.error(e + " " + str(string_info) + " " + str(datetime.now()))

 

posted @ 2021-07-28 14:43  是我菜了  阅读(1313)  评论(0编辑  收藏  举报