• python中如何打印日志信息


    日志打印方式

    常见的Python日志打印方式为使用内置函数print()或者logging模块打印日志。

    • print()只能将日志打印至控制台,不推荐此方式
    • logging模块默认将日志打印至控制台,也可以配置打印到指定日志文件,推荐使用此方式
    logging模块
    日志等级

    logging提供了函数来做日志处理,分别为debug()/info()/warning()/error()/critical(),对应日志的五个等级DEBUG/INFO/WARNING/ERROR/CRITICAL。如下表所示。

    函数日志等级等级值说明
    debug()DEBUG10调试模式下的日志,一般是给程序员看的
    info()INFO20程序正常运行时输出的日志
    warning()WARNING30警告信息,提示将来可能出现的问题
    error()ERROR40程序运行过程中出现的错误信息
    critical()CRITICAL50严重错误,表明软件已罢工

    设置日志等级后只会打印大于等于当前等级的日志,从logging模块的源码里可见日志等级大小排序如下。
    日志级别
    DEBUG等级值最小,因此会打印出所有等级的日志。
    logging里的默认等级为WARNING,也就是说在不设置日志等级的情况下,只有WARNING/ERROR/CRITICAL的日志才会被打印输出。

    打印输出
    1. 如果只是打印至控制台,使用basicConfig()函数即可。默认的日志收集器名称为root,可以在创建日志对象时设置该名称。
    logging.basicConfig(level=logging.INFO)
    
    • 1
    1. 如果需要打印至日志文件,可参考如下示例代码。
    # 创建日志对象(不设置时默认名称为root)
    log = logging.getLogger('test_http')
    # 设置日志级别(默认为WARNING)
    log.setLevel('INFO')
    # 设置输出渠道(以文件方式输出需设置文件路径)
    file_handler = logging.FileHandler('test.log', encoding='utf-8')
    file_handler.setLevel('INFO')
    # 设置输出格式(实例化渠道)
    fmt_str = '%(asctime)s %(thread)d %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s'
    formatter = logging.Formatter(fmt_str)
    # 绑定渠道的输出格式
    file_handler.setFormatter(formatter)
    # 绑定渠道到日志收集器
    log.addHandler(file_handler)
    
    def test_login():
        log.info("login start...")
    
    if __name__ == '__main__':
        log.setLevel(logging.ERROR)
        test_login()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    输出至log文件的日志格式如下:
    日志文件

  • 相关阅读:
    Java锁的逻辑(结合对象头和ObjectMonitor)
    ERROR 2003 (HY000) Can‘t connect to MySQL server on ‘localhost3306‘ (10061)
    maven的下载和安装教程
    【LeetCode】 贴纸拼词(动态规划)
    linux 下vi/vim使用
    OAuth2协议
    2024快手校招面试真题汇总及其解答(三)
    NFTScan | 10.16~10.22 NFT 市场热点汇总
    heapdump泄露Shiro key从而RCE
    仅30行代码,实现一个搜索引擎(1.0版)
  • 原文地址:https://blog.csdn.net/u800820/article/details/128114251