zoukankan      html  css  js  c++  java
  • python常识系列08-->logging模块基础入门

    前言

        努力从今天开始,成功从“零”开始。
    

    一、logging模块是什么?

    是Python内置的标准模块,主要用于输出运行日志

    二、日志是什么?

    • 日志是代码的必要组成部分
    • 记录日志能显示程序当前运行状态
    • 出问题后定位当时问题
    • 对日志记录的数据挖掘进行统计和分析(比如 **地区登录APP人数较多等)

    三、python日志级别

    DEBUG:调试信息
    INFO:有用的信息
    WARNING:警告信息 (默认日志级别)
    ERROR:错误信息
    CRITICAL:严重错误信息
    NOTSET:非级别,表示不设置,按照父logger级别来过滤日志

    日志级别关系:

    NOTSET < DEBUG < INFO < WARNING < ERROR < CRITICAL

    备注:如果把log的级别设置为INFO, 那么小于INFO级别的日志都不输出, 大于等于INFO级别的日志都输出。也就是说,日志级别越高,打印的日志越不详细。

    四、logging模块实战

    • 4.1 logging模块基础代码
    import logging
    
    logging.debug('-----调试信息[debug]-----')
    logging.info('-----有用的信息[info]-----')
    logging.warning('-----警告信息[warning]-----')
    logging.error('-----错误信息[error]-----')
    logging.critical('-----严重错误信息[critical]-----')
    

    由于没有设置日志级别,默认WARNING级别,上述代码输出如下:

    WARNING:root:-----警告信息[warning]-----
    ERROR:root:-----错误信息[error]-----
    CRITICAL:root:-----严重错误信息[critical]-----
    
    Process finished with exit code 0
    
    • 4.2 自定义日志级别
    import logging
    
    logging.basicConfig(level=logging.DEBUG)    #设置日志级别为DEBUG,注意要大写
    logging.debug('-----调试信息[debug]-----')
    logging.info('-----有用的信息[info]-----')
    logging.warning('-----警告信息[warning]-----')
    logging.error('-----错误信息[error]-----')
    logging.critical('-----严重错误信息[critical]-----')
    
    • 4.3 自定义日志显示格式
    import logging
    
    logging.basicConfig(level=logging.DEBUG,
                        format='%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s')
    logging.debug('-----调试信息[debug]-----')
    logging.info('-----有用的信息[info]-----')
    logging.warning('-----警告信息[warning]-----')
    logging.error('-----错误信息[error]-----')
    logging.critical('-----严重错误信息[critical]-----')
    

    其中format是控制日志格式用的,具体格式包含:(ps:读者可以换到上面代码部分试试)
    %(levelno)s: 打印日志级别的数值
    %(levelname)s: 打印日志级别名称
    %(pathname)s: 打印当前执行程序的路径,其实就是sys.argv[0]
    %(filename)s: 打印当前执行程序名
    %(funcName)s: 打印日志的当前函数
    %(lineno)d: 打印日志的当前行号
    %(asctime)s: 打印日志的时间
    %(thread)d: 打印线程ID
    %(threadName)s: 打印线程名称
    %(process)d: 打印进程ID
    %(message)s: 打印日志信息

    • 4.4 自定义日志输出到文件
    import logging
    
    logging.basicConfig(level=logging.DEBUG,
                        format='%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s',
                        filename='test.log')
    logging.debug('-----调试信息[debug]-----')
    logging.info('-----有用的信息[info]-----')
    logging.warning('-----警告信息[warning]-----')
    logging.error('-----错误信息[error]-----')
    logging.critical('-----严重错误信息[critical]-----')
    

    其中上述代码中 filename 参数为日志文件配置

    小结

    • 如果没有接触过日志的朋友使用本篇入门非常不错
    • 本篇中使用了 basicConfig() 这种方式去配置日志,其实还有多种方式配置(如配置文件配置、自定义logger对象配置等)
  • 相关阅读:
    sql语句最后一行显示统计。
    Win10访问不到XP共享的解决:
    git-github-TortoiseGit综合使用教程(二)快速入门
    git-github-TortoiseGit综合使用教程(一)简介
    RHEL7 -- 修改主机名
    安装完 MySQL 后必须调整的 10 项配置(转)
    my.cnf
    mysql查看系统参数
    MySQL性能的五大配置参数(内存参数)
    (转)Linux用户登录记录日志和相关查看命令汇总
  • 原文地址:https://www.cnblogs.com/dream66/p/12792975.html
Copyright © 2011-2022 走看看