首页 > 编程语言 >Python - 情景管理器

Python - 情景管理器

时间:2023-01-02 11:44:07浏览次数:46  
标签:__ 情景 管理器 Python debug logging logger data

def my_function():
    logging.debug('Some debug data')
    logging.error('Error log here')
    logging.debug('More debug data')

有这样一个函数,它的默认日志级别是WARNING,所以只会把大于等于WARNING 级别的日志打印出来

要想临时改变日志级别,可以定义情景管理器(context manager)。用@contextmanager来修饰下面这个辅助函数,就能定义出这样一个管理器

@contextmanager
def debug_logging(level):
    logger = logging.getLogger()
    old_level = logger.getEffectiveLevel()
    logger.setLevel(level)
    try:
        yield
    finally:
        logger.setLevel(old_level)

if __name__ == '__main__':
    with debug_logging(logging.DEBUG):
        print('* Inside:')
        my_function()
    print('* after:')
    my_function()


'''
* Inside:
DEBUG:root:Some debug data
ERROR:root:Error log here 
DEBUG:root:More debug data
* after:                  
ERROR:root:Error log here 
'''

标签:__,情景,管理器,Python,debug,logging,logger,data
From: https://www.cnblogs.com/czzz/p/17019650.html

相关文章

  • 极客编程python入门-多进程
    多进程在Python程序中轻松创建子进程:importosprint('Process(%s)start...'%os.getpid())#OnlyworksonUnix/Linux/Mac:pid=os.fork()ifpid==0:print('Iam......
  • python中如何获取主机的ip和主机名
    使用python中的socket库,可以轻松获取主机ip和主机名。一、获取主机名 importsockethostname=socket.gethostname()print(hostname)#DESKTOP-AAI12V0 ......
  • python中的platform模块
     platform模块给我们提供了很多方法去获取操作系统的信息;importplatformprint(platform.platform())#获取操作系统名称和版本号:macOS-10.14.6-x86_64-i386-64bitpri......
  • A*算法利用不在位数作为评价指标解决八数码问题(python)
    一、  程序设计思想:在一个3*3的方棋盘上放置着1,2,3,4,5,6,7,8总共八个数码,每个数码占一格,且有一个空格。这些数码可以在棋盘上移动,其移动规则是:与空格相邻的数码方......
  • A*算法利用曼哈顿距离作为评价指标解决八数码问题(python)
    1.题目说明在一个3*3的方棋盘上放置着1,2,3,4,5,6,7,8八个数码,每个数码占一格,且有一个空格。这些数码可以在棋盘上移动,其移动规则是:与空格相邻的数码方格可以移入空格......
  • Python3 学习~
    Python3heapq#默认小根堆Heap=[]#初始化为空heapq.heapify(list)#将一个list原地转换为堆,线性时间heapq.heappush(Heap,item)#插入一个元素item,类型随意x......
  • Python之路【第九篇】:Python操作 RabbitMQ、Redis、Memcache、SQLAlchemy
    1.MemcachedMemcached是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、......
  • python设计模式
    设计模式设计模式中使用了一个接口类abc:AbstractBaseClasses作用:在代码中定义和使用抽象基类进行API检查。​为什么使用abc模块Abstractbaseclasses由一组接口组......
  • Python__20-- 常见Bug
    1Bug一杯茶,一包烟,一个Bug改一天程序错误,即英文的Bug,也称为缺陷、臭虫,是指在软件运行中因为程序本身有错误而造成的功能不正常、死机、数据丢失、非正常中断等现象。早期的......
  • python 异常处理
    目录python异常处理异常机制本质try...except...try...except...except...try...except...elsetry...except...else...finally常见异常汇总和说明return语句和异常处理问......