`
idning
  • 浏览: 138501 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

python logging level分析

 
阅读更多

 

早些时候老被python的logging搞晕,有时候不想在屏幕上打印,它老是在屏幕打印,有时候level设不对.

 

今天又看了一下python的 logging/__init__.py

 

它有两个级别, 一个是Logger.level,另一个是 Handler.level ,关系如下:

 

 

    def log(self, level, msg, *args, **kwargs):
        if self.isEnabledFor(level):                                                                                                                        
            self._log(level, msg, args, **kwargs)

    def _log(self, level, msg, args, exc_info=None, extra=None):
        record = self.makeRecord(self.name, level, fn, lno, msg, args, exc_info, func, extra)                                                               
        self.handle(record)  

def handle(record):
            for hdlr in c.handlers:
                found = found + 1
                if record.levelno >= hdlr.level:         | record.level: log时候的参数,
                    hdlr.handle(record)                       |

WARN = WARNING
INFO = 20
DEBUG = 10

Logger.level  起作用的方式:

    def isEnabledFor(self, level):                                                                                                                          
        if self.manager.disable >= level:   不是disable
            return 0
        return level >= self.getEffectiveLevel()  返回logger.level ,如果 level 没有定义的话,尝试返回它的parent的level

结论:
     只有 record.level > logger.level & record.levle>logger.hander.level, 才会写到handler

root = RootLogger(WARNING)                      默认是WARNING         所以首先应该root.setLogLevel(DEBUG),
class Handler(Filterer)
    def __init__(self, level=NOTSET):              默认是NOTSET, 最低
分享到:
评论

相关推荐

    详解Python中logging日志模块在多进程环境下的使用

    在Python编程中,日志模块`logging`是一个强大的工具,用于记录程序运行过程中的各种信息。在多进程环境中,正确地使用`logging`模块尤为重要,因为它可以帮助开发者追踪和诊断分布式系统的问题。本文将深入探讨如何...

    python logging设置level失败的解决方法

    在Python编程中,`logging`模块是一个非常重要的工具,用于记录程序运行过程中的各种信息,包括错误、警告、信息等不同级别的日志。然而,在实际使用中,有时可能会遇到设置日志级别(level)无效的问题。本文将深入...

    说一说Python logging

    logging.basicConfig(format='%(levelname)s:%(message)s', level=logging.DEBUG) # 输出不同级别的日志 logging.debug('This message should go to the log file') logging.info('So should this') logging....

    python logging.docx

    Python 的 `logging` 模块是内置的日志记录系统,为开发者提供了强大的日志记录功能。日志在软件开发中扮演着重要的角色,它能够帮助开发者追踪程序运行过程中的问题,便于调试和故障排查。根据官方推荐,不同场景下...

    解决Python logging模块无法正常输出日志的问题

    在Python编程中,logging模块是用于生成日志的标准库,它提供了灵活的日志记录功能,包括不同级别的日志(如DEBUG、INFO、WARNING、ERROR、CRITICAL)以及日志输出到控制台、文件或其他处理器的能力。然而,有时我们...

    python logging 日志的级别调整方式

    Python的logging模块是用于生成日志的标准库,它提供了丰富的功能,包括日志级别设置、日志输出格式、日志处理器等。日志级别是控制日志信息输出的关键,不同的级别对应不同严重程度的消息,例如调试信息(debug)、...

    python日志输出----logging浅析与使用

    ### Python日志输出详解——深入理解logging模块 在Python编程中,日志系统扮演着至关重要的角色,尤其是在处理复杂项目时。它不仅帮助开发者追踪软件运行过程中的各种事件,还能在遇到问题时提供宝贵的线索。...

    Python logging设置和logger解析

    Python的logging模块是用于日志记录的标准库,它提供了丰富的功能来满足不同级别的日志需求,从简单的调试信息到复杂的日志记录策略。在本文中,我们将深入理解logging模块的设置和logger解析。 首先,我们要了解...

    Python-lvsoftenhancedlogging一个增强版的python日志模块

    2. 设置日志级别:`logging.basicConfig(level=logging.INFO)` 3. 创建日志记录器:`logger = logging.getLogger(__name__)` 4. 添加处理器和过滤器:`handler = logging.FileHandler('app.log')`,然后通过`logger....

    Python logging模块进行封装实现原理解析

    ### Python logging模块封装实现原理详解 #### 一、引言 在软件开发过程中,日志记录是一项非常重要的功能。它不仅能够帮助开发者更好地理解和调试代码,还能为运维人员提供系统运行状态的重要信息。Python自带的...

    Python模块学习logging.docx

    Python的logging模块是用于生成日志的,它在软件开发中扮演着至关重要的角色,特别是在大型项目或服务器部署中。日志记录可以帮助开发者追踪程序运行情况,排查错误和异常,确保系统的稳定性和可靠性。 首先,...

    python logging类库使用例子

     logging.basicConfig(filename = ‘log.txt’, filemode = ‘a’, level = logging.NOTSET, format = ‘%(asctime)s – %(levelname)s: %(message)s’)  logging.debug(‘this is a message’)  logging.info(...

    python将logging模块封装成单独模块并实现动态切换Level方式

    在Python编程中,`logging`模块是用于生成日志的标准库,它提供了多种级别的日志记录,如CRITICAL、ERROR、WARNING、INFO和DEBUG。在实际项目中,为了提高代码的可维护性和灵活性,通常会将`logging`的配置封装到...

    Python logging日志模块 配置文件方式

    Python的logging模块是标准库中用于日志记录的重要工具,尤其在微服务和Web服务中,日志功能不可或缺,用于追踪用户活动、程序错误和性能分析。本文将深入讲解如何通过配置文件的方式来设置logging模块。 首先,...

    python logging.basicConfig不生效的原因及解决

    logging.basicConfig(filename=os.path.join(os.getcwd(), 'logs/report_log.txt'), level=logging.DEBUG) # 进行日志记录 logging.info('可以了吗嗷嗷嗷!') ``` 2. **检查自定义日志模块**:如果使用了...

    Python logging管理不同级别log打印和存储实例

    ### Python logging模块详解:管理不同级别的日志打印与存储 #### 概述 在软件开发过程中,合理地管理和记录程序运行时的日志信息对于调试、维护以及后续功能的开发至关重要。Python内置的`logging`模块提供了强大...

    python logging模块的使用总结

    日志级别 CRITICAL 50 ERROR 40 WARNING 30 INFO 20 DEBUG 10 logging.basicConfig()函数中的具体参数含义 filename:指定的文件名创建FiledHandler,这样日志会被存储在... level:设置rootlogger的日志级别

    Python使用logging模块实现打印log到指定文件的方法

    在Python中,logging模块是一个强大的日志记录工具,它允许用户将程序运行期间产生的日志信息输出到控制台或者写入到文件中。在大型项目中,将日志信息记录到文件中是非常重要的,因为它可以帮助开发人员或者运维...

    Python中logging日志库实例详解

    在Python编程中,`logging`库是一个非常重要的模块,它提供了强大的日志记录功能,能够帮助开发者追踪程序运行状态,定位错误,以及进行调试。在本文中,我们将深入理解`logging`库的基本使用、常见对象、配置选项...

Global site tag (gtag.js) - Google Analytics