凉城旧巷
Python从入门到自闭,Java从自闭到放弃,数据库从删库到跑路,Linux从rm -rf到完犊子!!!
posts - 315,comments - 20,views - 38万

动态调整logging日志级别

import logging
import os


def set_log(log_path):
    log_format = logging.Formatter(fmt='[%(asctime)s][%(module)s][%(levelname)s]: %(message)s', datefmt='%Y-%m-%d %H:%M:%S')
    logger = logging.getLogger('')
    logger.setLevel(logging.DEBUG)

    log_level = logging.INFO
    log_output = logging.StreamHandler()
    log_output.setLevel(log_level)
    log_output.setFormatter(log_format)
    # addHandler是将handler append到一个列表中,因此是有序的
    logger.addHandler(log_output)

    log_level = logging.INFO
    if not os.path.exists(os.path.dirname(log_path)):
        os.makedirs(os.path.dirname(log_path))
    log_file_path = log_path
    log_dir = os.path.dirname(log_file_path)
    if not os.path.isdir(log_dir):
        os.makedirs(log_dir)
    file_log = logging.FileHandler(log_file_path)
    file_log.setLevel(log_level)
    file_log.setFormatter(log_format)
    logger.addHandler(file_log)
    return logger


def main():
    set_log('/data/users/fhu/PycharmProjects/Buildflow/test_demo/test_log.log')
    logging.info('1111111111111111111111')
    # print(len(logging.getLogger().handlers))
    # logging.getLogger().handlers可以获取已配置好的所有handler
    all_handlers = logging.getLogger().handlers
    
    for index, handler in enumerate(all_handlers):
        print(handler)
        print(type(handler))
        if isinstance(handler, logging.StreamHandler):
            print('stream')
        else:
            print('file')
            
    console_handler = all_handlers[0]
    old_level = console_handler.level
    console_handler.setLevel(logging.WARNING)
    logging.info('222222222222222222')
    console_handler.setLevel(old_level)
    logging.info('333333333333333333')


if __name__ == '__main__':
    main()

 

结果示例:

posted on   凉城旧巷  阅读(241)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示